summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/python/python3
Commit message (Collapse)AuthorAgeFilesLines
* Adding back wrapper and using OEPYTHON3HOME variable for python3Jaewon Lee2020-09-091-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adding back the python wrapper and adding a patch to use OEPYTHON3HOME instead of PYTHONHOME if set, for python3. If we add back the wrapper as is, we would see the following error that we also see in Thud: ImportError: No module named site OpenEmbedded requires 'python' to be python v2 (>= 2.7.3), not python v3. Please upgrade your python v2 This is because python3 would've set PYTHONHOME to use nativesdk python3 libraries but when the oe-buildenv-internal script tries to call python2 for the py_v27_check, there will be no python2 libraries in the PYTHONHOME directory. In other words, bitbake needs host python2 and the env variable set from the wrapper contaminates the env and host python2 won't be able to find its libraries Creating another variable OEPYTHON3HOME and using this in the python3 wrapper to allow for a way to set a different paths for python3 and python2 [YOCTO #13208] (From OE-Core rev: 75d2a85e24ef9a2bf0e218521944523f0ff281e0) (From OE-Core rev: b29e87376fdd49ce07749b87c3000033fa96e43f) Signed-off-by: Jaewon Lee <jaewon.lee@xilinx.com> Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: Fix CVEsDan Tran2019-10-084-0/+595
| | | | | | | | | | | Fixes CVE-2018-14647, CVE-2018-20406, CVE-2018-20852, CVE-2019-9636, CVE-2019-9740, and CVE-2019-9747. (From OE-Core rev: 5862716f22ca9f5745d3bca85c6ed0d8c35c437b) Signed-off-by: Dan Tran <dantran@microsoft.com> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: fix CVE-2019-9740Anuj Mittal2019-10-081-0/+155
| | | | | | | | | | | | CVE-2019-9947 is same as CVE-2019-9740 and mark it as such. See: https://bugs.python.org/issue30458 (From OE-Core rev: ad90312adabbad951f62e3bd4ad95fcc763ad0c4) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: drop redundant patchRoss Burton2019-01-081-38/+0
| | | | | | | | | | | | | | | | This patch altered the clean target's behaviour to skip the ipkg-install directory. However this directory isn't created by opkg, opkg-utils, or the package_ipk class; and we don't invoke the clean target as we perform out-of-tree builds. (From OE-Core rev: 9f8bd475701e5d797d3ffc1ba97647101ba0b9b0) (From OE-Core rev: e147baad7ab722b8319225561eb23cd4442629e1) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: add python3-venv to the python3-modules RDEPENDSRoss Burton2018-11-071-0/+1
| | | | | | | (From OE-Core rev: ed5e7541677f6a046f85389cd0c879be3db422cd) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: Fix python3-pyvenv run-time dependencyHugues Kamba2018-11-071-0/+16
| | | | | | | | | | | | | | | | | | | | | | | Pyvenv is just a small script that uses venv to create virtual environments. https://www.python.org/dev/peps/pep-0405/#creating-virtual-environments This patch adds the python3-venv module as a self-contained package which python3-pyvenv must depend on at run-time. The patch also provides the package python3-pyvenv from the pyhton3-venv package.This is good for future-proofing since python3-pyvenv has been deprecated and only python3-venv is now available in Python 3.6. https://docs.python.org/3/library/venv.html. Without this patch python3-pyvenv is broken because it is missing the venv module at run-time. This patch specifies the newly created python3-venv as a run-time dependency of python3-pyvenv. (From OE-Core rev: effa141bfce55aab25142ee578c95383c755ad73) Signed-off-by: Hugues Kamba <hugues.kamba@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: add ptest runnerRoss Burton2018-10-141-0/+3
| | | | | | | | | Copy the Python 2 run-ptest script to execute the Python 3 test suite. (From OE-Core rev: d371ff04628bdf7bac66341aeb9a66d145f66416) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: fix patch headersRoss Burton2018-10-081-0/+3
| | | | | | | (From OE-Core rev: 46bc904bf9cf3b2a01de0ba140b31066f90bfa49) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: move sqlite files into python-sqliteRoss Burton2018-10-011-7/+2
| | | | | | | | | sqlite3/__init__.py was accidentally included in python3-misc. (From OE-Core rev: 4e397e16996662bce51608cf5e20448b9803c476) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: remove specal handling of sqite3-testsRoss Burton2018-09-211-1/+1
| | | | | | | | | | This package doesn't exist anymore so the manifest tool doesn't need to handle it specially. (From OE-Core rev: 30eadb119a64d8561b946d5b8ee30244caeaf134) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: consolidate testsRoss Burton2018-09-211-22/+14
| | | | | | | | | | | | Currently the bulk of the tests in python3-tests, some more in python3-sqlite3-tests, and others in their parent module (such as python3-ctypes). This is pointless space usage if we're not planning on running the tests, so consolidate all the tests into python3-tests. (From OE-Core rev: 554d3690dab49fee3c93b6b677eb3ef58cff64c1) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: don't sort the manifest in create_manifestRoss Burton2018-09-212-480/+479
| | | | | | | | | | | | | | | | Instead of sorting the entire manifest when it is updated, use OrderedDict to preserve the order of fields. This means that packages can be ordered in the manifest to allow non-trivial FILES assignments (such as a package that picks up pieces of other packages) The manifest has been regenerated with the new stable ordering, and distutils-staticdev moved above distutils so the packaging rules work as expected. (From OE-Core rev: 1c67c2146e3644a26367a32885d27a4378f17ac6) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: fix openssl 1.1.1 changesRoss Burton2018-09-131-17/+10
| | | | | | | | | Due to human error an older revision of the SSL patch was merged. (From OE-Core rev: 325af0f4a821971a7aeeca35b10e3558f86029e0) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3{,-native}: backport openssl 1.1.1 compatibility changesAnuj Mittal2018-09-135-0/+857
| | | | | | | | | | | Backport changes from 3.7/3.6 to fix failing python3 ssl test suite. Fixes [YOCTO #12919] (From OE-Core rev: 6c123468b546931de005cf136d98bca6b893b37b) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: fix multiprocessingRoss Burton2018-09-131-0/+56
| | | | | | | | | | glibc 2.28 slightly changed the behaviour of sigaddset() which broke multiprocessing. Backport a patch from Python 3.6 to solve this. (From OE-Core rev: df1874eda517070dab86270ffafd5fe9a307e76b) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: remove patch that inadvertently disables xattrsRoss Burton2018-09-131-17/+0
| | | | | | | | | | | This patch dates back to the addition of the Python 3 recipe to oe-core, and as listxattr is never added to supports_follow_symlinks the extended attribute support will never be enabled. (From OE-Core rev: 9806e141e85b4e4c38eb7b45e6f2fbc2d2aed29d) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: remove redundant patchRoss Burton2018-09-131-96/+0
| | | | | | | | | | | None of the Python invocations that this changes are actually called, and there's no need to provide a HOSTPGEN variable when the recipe can just override PGEN directly. (From OE-Core rev: 47a8602171428b7ce5d897f7e2c2f26b203b8b63) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: fix ftplib with TLS 1.3Ross Burton2018-09-131-0/+57
| | | | | | | | | | With OpenSSL 1.1.x TLS 1.3 can be used, so backport a patch from Python 3.6 to fix the ftplib unit test. (From OE-Core rev: a31047bec6b7c368674d4620e70e526ac211b936) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: don't use runtime checks to identify float endianismRoss Burton2018-09-101-0/+212
| | | | | | | | | | | | | | | Python uses AC_RUN_IFELSE to determine the byte order for floats and doubles, and falls back onto "I don't know" if it can't run code. This results in crippled floating point numbers in Python, and the regression tests fail. Instead of running code, take a macro from autoconf-archive which compiles C with a special double in which has an ASCII representation, and then greps the binary to identify the format. (From OE-Core rev: 1781b87ae0765c1867da2fa8c56bf988b4e84405) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: trim PGO patchRoss Burton2018-09-101-2/+2
| | | | | | | | | | | There's no need to delete the line that removes the profile data, as we're not using it after the build. This reduces the size of the patch, making it easier to maintain. (From OE-Core rev: 561577add4b935d9bfb7b7dd6abdc3e26c1d9143) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: fix indentation on create_manifest3Alejandro Enedino Hernandez Samaniego2018-09-061-54/+54
| | | | | | | (From OE-Core rev: 76b4596c3782590bd27a7d46c2b64393c3a83944) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3-manifest: Avoid duplicate modulesAlejandro Enedino Hernandez Samaniego2018-09-061-4/+1
| | | | | | | | | | | There was a bug where modules were being added twice to the core package, this patches the manifest to reflect the fix on the create_manifest script. (From OE-Core rev: 9ddbff824052751b4d0bb30c453ecb5098d728c9) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: Clean up create manifest scriptAlejandro Enedino Hernandez Samaniego2018-09-061-190/+242
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch intends to clean up the whole create_manifest script/task for python3. This is an effort to make the code more human friendly and facilitate adoption, it not only cleans up the code but it also improves comments, it should also be easier to upgrade the manifest after each python3 upgrade now, with these fixes the transition to python 3.7 should be seamless. It fixes a rather harmless bug where module dependencies were being added twice to the core package and adds tests and sqlite3-tests as special packages since we want specific dependencies on those. It also fixes a bug that happened on a few packages that contained a directory with the same name as the module itself e.g. asyncio, where the script avoided checking that module for dependencies. Lastly, it improves the output, it errors out if a module is found on more than one package, which is what usually happens when python upstream introduces a new file, hence why the current manifest is unaware of, it is better to exit with an error because otherwise the user wouldnt know if anything went wrong unless the output of the script was checked manually. (From OE-Core rev: 658042073cb58c58ac4db4ff13689d1ffd89b72e) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: Modify create_manifest to make it versionlessAlejandro Enedino Hernandez Samaniego2018-09-061-1/+9
| | | | | | | | | | | | | This patch improves the create_manifest script by making it use PYTHON_MAJMIN instead of hard coded paths containing the version number when looking at the necessary modules for every package, the script should now be independent of the python(3) version on which were working (From OE-Core rev: b94af33b5ffdd62617cf69fca4d99e927447740a) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3-manifest: Use PYTHON_MAJMIN instead of hard coded versionAlejandro Enedino Hernandez Samaniego2018-09-061-402/+402
| | | | | | | | | | | Currently the manifest contains hard coded paths with the version number, e.g. python3.5, this patch changes the paths to use the variable PYTHON_MAJMIN instead, this should make the python upgrades easier (From OE-Core rev: a6fab3ca81e3dc6ee226840ed7e9f1cd21ecbc2a) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: enable profile optimized buildsAnuj Mittal2018-08-162-0/+96
| | | | | | | | | | | | | | | | | | | | | | Enable profile guided optimization (pgo) for python3. Enabling pgo in python is generally as simple as invoking the target profile-opt which: - builds python binaries with profile instrumentation enabled, - runs a specific profile task using that python to get the profile data and, - feeds the compiler with this profile data and rebuilds python. This change invokes qemu-user for the second step of running a profile task using target python. Depending on how long profile task takes to run, this might add a significant time to compilation (which would be true for native builds too). The default profile task can be changed by the users depending on what makes sense for their use case (or can be left empty). In case qemu-user isn't supported, profile task won't be run. (From OE-Core rev: 05a2a53f9cc7e75b4a3838ab9368cadf0f15ba1b) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: fix depends of python3-testsMarkus Lehtonen2018-07-311-1/+2
| | | | | | | | | | | Make the tests subpackage depend on all modules as test.regrtest uses most (if not all) of them. (From OE-Core rev: f03f3edc211b3e03cf1a6b2655ba664af7fbd12f) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3-native: correctly invoke regen-importlib make targetJoe Slater2018-05-041-0/+25
| | | | | | | | | | | | | Redefiine regen-all in Makefile to invoke regen-importlib after building other regen- targets. Change the recipe to not build it before regen-all. This avoids trying to build it multiple times, which can occasionally fail. (From OE-Core rev: 72d62c9af07bf34bb8fbb3958742eb592985acc2) Signed-off-by: Joe Slater <joe.slater@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Revert "python3: fix create_manifest to handle pycache folders"Richard Purdie2018-04-072-15/+10
| | | | | | | | | Alejandro asked this be reverted as the patch causes more problems than it solves. This reverts commit 5d288d286e0adb221649d896c132a607ecddc490. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: Improve logging capabilities for do_create_manifestAlejandro Enedino Hernandez Samaniego2018-04-031-7/+27
| | | | | | | | | | | | | Adds a couple of prints to get a nicer log, and creates a small summary or report after checking every module, it makes it more feasible for adoption, easier to debug why a module ended at a certain package and see how the manifest was created. (From OE-Core rev: 4c2af72f51a7bf187615fc0b3a229d25c3e191e9) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: Fix do_create_manifest for python3-sqlite3Alejandro Enedino Hernandez Samaniego2018-03-312-21/+37
| | | | | | | | | | | | | | | | Some of the sqlite3 files ended up in python3-misc incorrectly, this is caused becuse we couldnt add the whole ${libdir}/python3/sqlite3 folder on the package because we also have another sqlite3-tests package that needs to include another folder from that directory. This patch not only fixes the do_create_manifest script to handle this situation, but also patches the manifest (created using the script) which also fixes a hiddn runtime dependency that we wouldn't have seen. (From OE-Core rev: 3324cb31670f33ffe193e550e3b3da8380b3c8c9) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: fix create_manifest to handle pycache foldersAlejandro Enedino Hernandez Samaniego2018-03-312-10/+15
| | | | | | | | | | | | | | | We have a couple of python modules that contain folders themselves, for that reason they also contain a __pycache__ folder inside those directories, since we include the whole folder in the manifest, the pycache directories end up with the files and not the cache files. This patch catches that and adds the directories to the correct structure. (From OE-Core rev: df9401e7e69ce162e257e827d67eb217666e532d) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: consolidate sqlite3 filesRoss Burton2018-03-301-2/+5
| | | | | | | | | | Some of the sqlite3 module was in python3-misc by accident, move the files into python3-sqlite3 where they belong. (From OE-Core rev: f06a8d20560b8e93cf875ee58eddda0a976e7b14) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: Fix purelib install and runtime pathsJason Wessel2018-03-151-8/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | oe-core commit: 45afadf0b6 fixed the pip problem with purelib for python2, even though the the patch stated it was for python3. This patch addresses the purelib problem for python3. If you install the package python3-pip you will have a pip3 binary where you can see the problem on the device easily where the modules install into the incorrect area and are not able to be referenced by python3 at all. Example error: pip3 install imutils pip3 list |grep imutils || echo ERROR no imutils ERROR no imutils python3 -c 'import imutils' Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named 'imutils' (From OE-Core rev: 54e0b3bfc132613902418be148a900b10f6d9e38) Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python: refresh patchesRoss Burton2018-03-112-68/+65
| | | | | | | | | | | | | | | | | | | | | The patch tool will apply patches by default with "fuzz", which is where if the hunk context isn't present but what is there is close enough, it will force the patch in. Whilst this is useful when there's just whitespace changes, when applied to source it is possible for a patch applied with fuzz to produce broken code which still compiles (see #10450). This is obviously bad. We'd like to eventually have do_patch() rejecting any fuzz on these grounds. For that to be realistic the existing patches with fuzz need to be rebased and reviewed. (From OE-Core rev: 8a5c1328c4ea63443a92813c54bd2229c9959ff9) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python: refresh patchesRoss Burton2018-03-094-50/+36
| | | | | | | | | | | | | | | | | | | | | The patch tool will apply patches by default with "fuzz", which is where if the hunk context isn't present but what is there is close enough, it will force the patch in. Whilst this is useful when there's just whitespace changes, when applied to source it is possible for a patch applied with fuzz to produce broken code which still compiles (see #10450). This is obviously bad. We'd like to eventually have do_patch() rejecting any fuzz on these grounds. For that to be realistic the existing patches with fuzz need to be rebased and reviewed. (From OE-Core rev: 0b25fcee333e6207a8596d26adfa65fec85c26df) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: Fix python3-logging dependenciesTomasz Meresiński2018-02-161-1/+2
| | | | | | | | | | python3-logging depends on python3-netserver (logging/config.py:42) (From OE-Core rev: ea5f51cf2b885ba32a3e5fe6049141e45606ecf3) Signed-off-by: Tomasz Meresiński<tomasz.meresinski@comarch.pl> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: update target and native recipes to 3.5.4Derek Straka2018-02-064-796/+40
| | | | | | | | | | | | | | | | | | | | | | Use the latest 3.5 version until the 3.6 migration is complete Removed the following upstreamed patches: - python3/Fix-29519-weakref-spewing-exceptions-during-interp-f.patch - python3/upstream-random-fixes.patch Rebased the following pathes: - python3/0001-cross-compile-support.patch Regenerated the manifest based on the latest release version Updated the license checksum for the latest version that updated the copyright dates (From OE-Core rev: eb80d0391d7d4e83a61ed8850d936b102be3fa02) Signed-off-by: Derek Straka <derek@asterius.io> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3-manifest: add the _pydecimal files to the numbers packageDerek Straka2018-01-291-3/+5
| | | | | | | | | | | | The _pydecimal files are required to use the numbers package and downstream packages are currently required to add a RDEPENDS on python3-misc to avoid an import error (From OE-Core rev: 4ca2d607a6b6fe8686bf89177287f2b9bae01245) Signed-off-by: Derek Straka <derek@asterius.io> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: Fix native compilation of gdbm module and manifestAlejandro Hernandez2018-01-201-2/+13
| | | | | | | | | | | | | | | | | | | | | The gdbm module wasnt being built on python3-native showing the following error during compilation: Failed to build these modules: _gdbm This patch adds the required dependency to fix the compilation problem. This issue on python3-native caused the manifest creation script to be unaware of the gdbm library, so this patch also fixes the create_manifest task for target python, and the manifest file to reflect the changes on target python as well. (From OE-Core rev: c47b54aeae5daabb458d6f7118a16257021c1822) Signed-off-by: Alejandro Hernandez <alejandr@xilinx.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python*-manifest.json: add dependencies, runpyTim Orling2018-01-201-4/+37
| | | | | | | | | | | | | | | | | | | | | * runpy allows running modules/scripts with 'python -m foo' - create explicit python2 and 3 packages rather than the misc catchall * python3-setuptools and html.parser RDEPENDS on _markupbase - add to python3-core rather than misc catchall * pip3 RDEPENDS on plistlib, http.client - already packaged in python2, add to python3 - add http/ to -netclient * "pip3 install" RDEPENDS on encodingds.idna - encodings.idna packaged in -core, but missing: - stringprep (move from -codecs to -core) - unicodedata (move from -codecs to -core) (From OE-Core rev: 65a85c7db3de8d16ff91a5208a59cc2202d34e5b) Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: Restructure python3 packaging and replace it with autopackagingAlejandro Hernandez2018-01-203-0/+1563
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See previous commit (python2 version) for more info, since mostly everything applies here as well. Old manifest file had several issues: - Its unorganized and hard to read and understand it for an average human being. - When a new package needs to be added, the user actually has to modify the script that creates the manifest, then call the script to create a new manifest, and then submit a patch for both the script and the manifest, so its a little convoluted. - Git complains every single time a patch is submitted to the manifest, since it violates some of its guidelines. - It changes or may change with every release of python, its impossible to know if the required files for a certain package have changed (it could have more or less dependencies), the only way of doing so would be to install and test them all one by one on separate individual images, and even then we wouldnt know if they require less dependencies, we would just know if an extra dependency is required since it would complain, lets face it, this isnt feasible. - The same thing happens for new packages, if someone wants to add a new package, its dependencies need to be checked manually one by one. Features/Fixes: - A new manifest format is used (JSON), easy to read and understand. This file is parsed by the python recipe and python packages read from here are passed directly to bitbake during parsing time. - It provides an automatic manifest creation task (explained on previous commit), which automagically checks for every package dependencies and adds them to the new manifest, hence we will have on each package exactly what that package needs to be run, providing finer granularity. - Dependencies are also checked automagically for new packages (explained on previous commit). This patch has the same features as the python2 version but it differs in the following ways: - Python3 handles precompiled bytecode files (*.pyc) differently. for this reason and since we are cross compiling, wildcards couldnt be avoided on python3 (See PEP #3147 [1]). Both the manifest and the manifest creation script handle this differently, the manifest for python3 has an extra field for cached files, which is how it lets the user install the cached files or not via : INCLUDE_PYCS = "1" on their local.conf. - Shared libraries nomenclature also changed on python3, so again, we use wildcards to deal with this issue ( See PEP #3149 [2]): - Fixes python3 manifest, python3-core should be base and everything should depend on it, hence several packages were deleted: python3-enum, re, gdbm, subprocess, signal, readline. - When building python3-native it adds as symlink to it called nativepython3, which is then isued by the create_manifest task. - Fixes [YOCTO #11513] while were at it. References: [1] https://www.python.org/dev/peps/pep-3147/ [2] https://www.python.org/dev/peps/pep-3149/ (From OE-Core rev: 54ac820b8a639950ccb534dcd9d6eaf8b2b736e0) Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: remove two setup.py cross-compile hacksMarkus Lehtonen2017-12-022-63/+0
| | | | | | | | | | | | | | | | | Remove two unneeded hacks. The first hack ("setup.py: no host headers libs" patch) is not needed because we use cross-compiler (e.g. i586-oe-linux-gcc) which has not been configured with any host system include or library directories, and thus, we don't get any host system directories when running "gcc -E -v". The second hack becomes useless after the first hack has been removed and we get the standard include and lib directories normally from gcc. (From OE-Core rev: 9e9545ef818adfb57f428db96d4c2ebb0ea65ec6) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: improve reproducibilityJuro Bystricky2017-08-161-0/+97
| | | | | | | | | | | | | | | | The compiled .pyc files contain time stamp corresponding to the compile time. This prevents binary reproducibility. This patch allows to achieve binary reproducibility by overriding the build time stamp by the value exported via SOURCE_DATE_EPOCH. Patch by Bernhard M. Wiedemann. [YOCTO#11241] (From OE-Core rev: 2175aec10a764bfc925a3fb447547982d0ae662f) Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python2/python3: fix multiprocessing.BoundedSemaphore not work on ↵Hongxu Jia2017-08-131-0/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qemux86/qemuarm In upstream, the following commit: https://github.com/python/cpython/commit/e711cafab13efc9c1fe6c5cd75826401445eb585 ... commit e711cafab13efc9c1fe6c5cd75826401445eb585 Author: Benjamin Peterson <benjamin@python.org> Date: Wed Jun 11 16:44:04 2008 +0000 Merged revisions 64104,64117 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ... (see diff in setup.py) It assigned libraries for multiprocessing module according the host_platform, but not pass it to Extension. In glibc, the following commit caused two definition of sem_getvalue are different. https://sourceware.org/git/?p=glibc.git;a=commit;h=042e1521c794a945edc43b5bfa7e69ad70420524 (see diff in nptl/sem_getvalue.c for detail) `__new_sem_getvalue' is the latest sem_getvalue@@GLIBC_2.1 and `__old_sem_getvalue' is to compat the old version sem_getvalue@GLIBC_2.0. If not explicitly link to library pthread (-lpthread), it will load glibc's sem_getvalue randomly at runtime. Such as build python on linux x86_64 host and run the python on linux x86_32 target. If not link library pthread, it caused multiprocessing bounded semaphore could not work correctly. ... >>> import multiprocessing >>> pool_sema = multiprocessing.BoundedSemaphore(value=1) >>> pool_sema.acquire() True >>> pool_sema.release() Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: semaphore or lock released too many times ... And the semaphore issue also caused multiprocessing.Queue().put() hung. (From OE-Core rev: ca1542cdf6b6437a2f3dcdb33ac5216bf841c04a) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: fix weakref spewing exceptions during interp finalizationMark Asselstine2017-07-211-0/+56
| | | | | | | | | | | | | | | | | | | When py3 applications are exiting we often see errors similar to the following: Exception ignored in: <function WeakValueDictionary.__init__.<locals>.remove at 0x7fcb56b09400> Traceback (most recent call last): File "/usr/lib64/python3.5/weakref.py", line 117, in remove TypeError: 'NoneType' object is not callable After a quick search this was found to be a well reported issue upstream and had an appropriate fix which is backported here. (From OE-Core rev: 8aaf09a916a2f66f1a6a79cbddf45390ecefde4f) Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: Use _sysconfigdata.py to initialize distutils.sysconfigLi Zhou2017-05-291-0/+66
| | | | | | | | | | | | | | | Porting patch from <https://github.com/python/cpython/commit/409482251b06fe75c4ee56e85ffbb4b23d934159> to use _sysconfigdata.py to initialize distutils.sysconfig. This patch makes that distutils.sysconfig doesn't need config-*/Makefile in libdir any more. Next we can move it from python3-misc to python3-dev package. (From OE-Core rev: 659a80afc5894658f8b82fcd62ebe3562b441db9) Signed-off-by: Li Zhou <li.zhou@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python: update to 3.5.3Alexander Kanavin2017-05-184-330/+172
| | | | | | | | | | | | | | | | | | | | | | | Prior versions of python do not support openssl 1.1; updating to Python 3.6 on the other hand is a lot more involved, and so should be done by a specialist/maintainer. LICENSE checksum change due to copyright years. Drop upstreamed python3-fix-CVE-2016-1000110.patch Rebase upstream-random-fixes.patch (taken from https://github.com/python/cpython/commit/ff558f5aba40bd173f336503def886a12f8db016 ) Rebase 0001-Do-not-use-the-shell-version-of-python-config-that-w.patch Rebase 000-cross-compile.patch (From OE-Core rev: b7b982a29e5d14c558b5fc25b4dc727810510ade) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3: do not hardcode "lib" into site-packages search pathAlexander Kanavin2017-03-281-125/+165
| | | | | | | | | | | | This was not working in multilib or x32 setups and amazingly, was not noticed until now. The actual modification is in Lib/site.py, the rest is just devtool moving things around in the patch. (From OE-Core rev: f60d261b682f1526fb7a754c425300954ef85042) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python-3.3-multilib.patch: Fixes getpath on multilib configurationsJose Lamego2017-03-221-4/+13
| | | | | | | | | | | | | | | | | | When using multilib configurations either on arm/arm64 and x86/x86-64 python3 failed to execute due to a failure when looking for its platform independent and dependent libraries. This patch fixes this issue by assigning lib_python to the appropriate macro. [YOCTO #10812] (From OE-Core rev: 9e99897f17d9c62ca5da208751d6560fc98927b6) Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com> Signed-off-by: Jose Lamego <jose.a.lamego@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>