Commit Graph

64 Commits

Author SHA1 Message Date
Alejandro Enedino Hernandez Samaniego
c05304f1ea python3: fix indentation on create_manifest3
(From OE-Core rev: 76b4596c3782590bd27a7d46c2b64393c3a83944)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-06 10:36:31 +01:00
Alejandro Enedino Hernandez Samaniego
a8a984dde7 python3-manifest: Avoid duplicate modules
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>
2018-09-06 10:36:31 +01:00
Alejandro Enedino Hernandez Samaniego
f65c898ba6 python3: Clean up create manifest script
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>
2018-09-06 10:36:31 +01:00
Alejandro Enedino Hernandez Samaniego
d3148222f0 python3: Modify create_manifest to make it versionless
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>
2018-09-06 10:36:31 +01:00
Alejandro Enedino Hernandez Samaniego
e9b05a3fea python3-manifest: Use PYTHON_MAJMIN instead of hard coded version
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>
2018-09-06 10:36:31 +01:00
Anuj Mittal
371283df2e python3: enable profile optimized builds
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>
2018-08-16 22:40:28 +01:00
Markus Lehtonen
ef6941fa56 python3: fix depends of python3-tests
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>
2018-07-31 22:47:36 +01:00
Joe Slater
1d708bb185 python3-native: correctly invoke regen-importlib make target
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>
2018-05-04 13:28:05 +01:00
Richard Purdie
7b0074b79b Revert "python3: fix create_manifest to handle pycache folders"
Alejandro asked this be reverted as the patch causes more problems
than it solves.

This reverts commit 5d288d286e.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-07 11:44:50 +01:00
Alejandro Enedino Hernandez Samaniego
b9d51eceac python3: Improve logging capabilities for do_create_manifest
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>
2018-04-03 23:53:20 +01:00
Alejandro Enedino Hernandez Samaniego
dc24e256a9 python3: Fix do_create_manifest for python3-sqlite3
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>
2018-03-31 09:48:42 +01:00
Alejandro Enedino Hernandez Samaniego
5d288d286e python3: fix create_manifest to handle pycache folders
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>
2018-03-31 09:48:42 +01:00
Ross Burton
3a51d2c808 python3: consolidate sqlite3 files
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>
2018-03-30 00:31:18 +01:00
Jason Wessel
9390f907a9 python3: Fix purelib install and runtime paths
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>
2018-03-15 06:27:20 -07:00
Ross Burton
a2fdf7fb08 python: refresh patches
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>
2018-03-11 06:27:00 -07:00
Ross Burton
fe9e4bbee7 python: refresh patches
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>
2018-03-09 09:17:04 -08:00
Tomasz Meresiński
c427ed474c python3: Fix python3-logging dependencies
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>
2018-02-16 18:05:39 +00:00
Derek Straka
39e48c8b06 python3: update target and native recipes to 3.5.4
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>
2018-02-06 11:06:27 +00:00
Derek Straka
cb61f997c0 python3-manifest: add the _pydecimal files to the numbers package
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>
2018-01-29 08:49:50 +00:00
Alejandro Hernandez
2afde7e7bd python3: Fix native compilation of gdbm module and manifest
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>
2018-01-20 22:31:56 +00:00
Tim Orling
5dd24c1753 python*-manifest.json: add dependencies, runpy
* 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>
2018-01-20 22:31:56 +00:00
Alejandro Hernandez
b6777878ff python3: Restructure python3 packaging and replace it with autopackaging
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>
2018-01-20 22:31:56 +00:00
Markus Lehtonen
ae8d879006 python3: remove two setup.py cross-compile hacks
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>
2017-12-02 11:25:32 +00:00
Juro Bystricky
6fd0e23dbd python3: improve reproducibility
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>
2017-08-16 00:03:15 +01:00
Hongxu Jia
365b18dbef python2/python3: fix multiprocessing.BoundedSemaphore not work on qemux86/qemuarm
In upstream, the following commit:
e711cafab1
...
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>
2017-08-13 09:27:37 +01:00
Mark Asselstine
17d181f059 python3: fix weakref spewing exceptions during interp finalization
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>
2017-07-21 22:51:37 +01:00
Li Zhou
0862df262d python3: Use _sysconfigdata.py to initialize distutils.sysconfig
Porting patch from
<409482251b>
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>
2017-05-29 15:15:20 +01:00
Alexander Kanavin
74684e30ea python: update to 3.5.3
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
ff558f5aba )

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>
2017-05-18 14:01:47 +01:00
Alexander Kanavin
3d29214b20 python3: do not hardcode "lib" into site-packages search path
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>
2017-03-28 08:43:13 +01:00
Jose Lamego
4ad1148e68 python-3.3-multilib.patch: Fixes getpath on multilib configurations
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>
2017-03-22 11:35:21 +00:00
Jussi Kukkonen
82d817826c python3: Remove unused patches
CVE-2016-5636.patch and use_packed_importlib.patch were removed from
SRC_URI as handled in upstream in b192bc02bb.

(From OE-Core rev: 71c539483350a4b45fb5d397d29b6ebcfc863e2f)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-16 22:11:32 +00:00
Richard Purdie
a0336965aa python3: Add upstream random.c fixes for recent glibc
python3 fails to work with recent glibc versions on older hosts, giving
errors like:

Fatal Python error: getentropy() failed
Aborted

This breaks buildtools-tarball and hence eSDK. This patch backports the
changes to random.c from upstream that address the problem.

(From OE-Core rev: 126b2c47b1806b53fbd9a4706bc48bc7c4efd3be)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-23 12:05:21 +00:00
Dominic Sacré
3f2ab3f7cc python3: Build and package precompiled modules
Remove the patch that was applied in the python3 and python3-native
recipes to skip compilation of python modules.

Modify generate-manifest-3.5.py to match '__pycache__' directories in
FILES_*.
This is necessary because Python3 puts .pyc files in '__pycache__'
subdirectories one level below the corresponding .py files, whereas in
Python2 they used to be right next to the sources.

This change significantly reduces the startup overhead of Python3
scripts. For example, on a Cortex-A9, "python3 -c pass" took 0.40s
before, and 0.19s after.

(From OE-Core rev: bb4d689769703177dbb0df0935e15016b879f42b)

Signed-off-by: Dominic Sacré <dominic.sacre@gmx.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-30 15:48:05 +00:00
Mingli Yu
fd4391d8ba python: fix CVE-2016-1000110
Backport patch to fix CVE-2016-1000110 from python upstream:
for python2.7
https://hg.python.org/cpython/rev/ba915d561667/
for python3
https://hg.python.org/cpython/rev/a0ac52ed8f79

(From OE-Core rev: 1dd22b9d35983f35c481a1fcf67425aa0fd07a5b)

Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-09-28 10:16:03 +01:00
Alejandro Hernandez
3ab991bee2 python3-native: Upgrade from 3.5.1 to 3.5.2
LICENSE did not change, only dates were changed

Rebases:
 - 000-cross-compile.patch
 - python-3.3-multilib.patch

(From OE-Core rev: 0a3a4047e779c8bff2b5e2bfa37b7ab119d08d4b)

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>
2016-08-10 10:46:30 +01:00
Armin Kuster
d1fdd0ad55 python3: Security fix CVE-2016-5636
Affects python3 < 3.5.1
Base Score (4.4) Medium

(From OE-Core rev: a7cbd6805febadaad60d1e05899e10e9a8a36c26)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-07-20 10:28:52 +01:00
Ross Burton
e49d337e84 meta: update patch metadata
Enforce the correct tag names across all of oe-core for consistency.

(From OE-Core rev: 606a43dc38a00cc243f933722db657aea4129f8e)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-07-08 09:57:24 +01:00
Alexander Kanavin
f5d36b1c56 python3: drop 110-enable-zlib.patch
With the patch, the zlib extension wasn't built at all.
Without the patch, it gets build just fine.

(From OE-Core rev: 59870a852cf88ecef094db0a2adec168a8997626)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-06-03 13:13:26 +01:00
Alexander Kanavin
083d0aa27f python3: add = to -L linking option only when the path is absolute
Previously it was added also when the path was relative and not
prefixed with ./, which was causing issues with building numpy.

(From OE-Core rev: 3e171c89e929a09e4d511a8f235dd90b7cf0d463)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-06-01 12:38:42 +01:00
Alexander Kanavin
4977a0743b python-native, python3-native: remove the use of exported HOST_SYS and BUILD_SYS variables
The code that utilized them was superseded by the code (in the same patch!)
that is utilizing STAGING_LIBDIR/STAGING_INCDIR, and wasn't correct in the
first place as HOST_SYS is not necessarily the same as the sysroot directory
name.

(From OE-Core rev: 8834e81a38c24a066bb4fefa93da61011d0db244)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-06-01 12:38:41 +01:00
Martin Jansa
258cfa891e python(3): Disable tkinter
* restore changes from:
  http://git.openembedded.org/openembedded-core/commit/?id=53ae544cfdac22c82af452b8c7ebe6664296bd9b
* which were shamelessly removed in upgrade to 2.7.9:
  http://git.openembedded.org/openembedded-core/commit/?id=d4ad95f0d5f08891637c644e85b09da9c4585059
  and then spread to python3 as well
* fixes following issues reported by test-dependencies
  WARN: python3: python3-tkinter rdepends on glibc, but it isn't a build dependency?
  WARN: python3: python3-tkinter rdepends on libpython3, but it isn't a build dependency?
  WARN: python3: python3-tkinter rdepends on tcl-lib, but it isn't a build dependency?

  WARN: python: python-tkinter rdepends on glibc, but it isn't a build dependency?
  WARN: python: python-tkinter rdepends on libpython2, but it isn't a build dependency?
  WARN: python: python-tkinter rdepends on tcl-lib, but it isn't a build dependency?

  and following QA warnings in normal builds:
  python-2.7.11: python-tkinter rdepends on tcl-lib, but it isn't a build dependency, missing tcl in DEPENDS or PACKAGECONFIG? [build-deps]
  python-2.7.11: /usr/lib/python2.7/lib-dynload/_tkinter.so contained in package python-tkinter requires libtk8.6.so, but no providers found in RDEPENDS_python-tkinter? [file-rdeps]
  python3-3.5.1: python3-tkinter rdepends on tcl-lib, but it isn't a build dependency, missing tcl in DEPENDS or PACKAGECONFIG? [build-deps]
  python3-3.5.1: /usr/lib/python3.5/lib-dynload/_tkinter.cpython-35m-arm-linux-gnueabi.so contained in package python3-tkinter requires libtk8.6.so, but no providers found in RDEPENDS_python3-tkinter? [file-rdeps]

(From OE-Core rev: 8cc5e36cd7978186d5ea1fe8af2f2bd6b3df8885)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-25 10:29:14 +00:00
Hongxu Jia
3d45853eef python3: fix do_configure check platform triplet error
For p1022ds bsp, the MULTIARCH is powerpc-linux-gnuspev1 and
python3 did not recognize the extra 'v1' which caused python3
configure error for the platform triplet.

Q:Why Python3 check platform triplet?

A:Under Linux, GNU/KFreeBSD and the Hurd, C extensions now include
the architecture triplet in the extension name, to make it easy to
test builds for different ABIs in the same working tree.

vim config.log
...
EXT_SUFFIX='.cpython-35m-powerpc-linux-gnuspe.so'
...

Here is the generated C extensions which take platform triplet into account.
...
|image/usr/lib/python3.5/lib-dynload/_datetime.cpython-35m-powerpc-linux-gnuspe.so
...

https://bugs.python.org/issue22980
https://www.python.org/dev/peps/pep-3149/
https://bugs.python.org/review/22980/patch/14593/54808

[YOCTO #9226]

(From OE-Core rev: cda0ef61d37357fed1daa22f6a59ef9f906fcada)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-12 22:11:46 +00:00
Alexander Kanavin
142bad3615 python3: fix patching get_python_lib() in distutils/sysconfig.py
Previous, two things were wrong:
1) lib_basename was set from STAGING_LIBDIR only if prefix parameter was empty or missing
2) if prefix was not empty, lib_basename reverted to sys.lib, even if STAGING_LIBDIR
should've overriden it

(From OE-Core rev: 28d29004aa7d17794216d7df55afc308b1f0e806)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-09 17:00:28 +00:00
Alexander Kanavin
50d07e923e python3-native: use the previous version of python-config script
In python 3.4 python-config was rewritten in shell, ironically
to support cross-compilation:
https://bugs.python.org/issue16235

This new shell version is broken in several ways, and doesn't
have our oe-specific tweaks. Let's revert to the old script,
which is still provided.

(From OE-Core rev: b0d714c7f831828a5e09381fe36e3f859c16b2d9)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-09 17:00:28 +00:00
Ross Burton
3adb8d5cde python3: remove optimize by default patch
Python 3 resurrected the default to optimised patch, on the rationale that
embedded systems want all the performance they can get.  Unfortunately the only
impact Python "optimisation" has is to remove all asserts which can be actively
harmful, so remove this patch.

(From OE-Core rev: 1e43b836106ed13cde294e2c565eaea6fe5efca7)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-07 17:29:59 +00:00
Alejandro Hernandez
113e1365a8 python3: Minor upgrade 3.5.0 -> 3.5.1
Rebased:
- 000-cross-compile.patch

(From OE-Core rev: f1d9f7b2ea930fec3198264a2d1d04088efc8f3c)

Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-20 17:07:15 +00:00
Robert Yang
29d273fdba python3: fix installed-vs-shipped when 64bit + multilib
Fixed:
python3-3.5.0: python3: Files/directories were installed but not shipped in any package:
  /usr/lib
  /usr/lib/python3.5
  /usr/lib/python3.5/config-3.5m
  /usr/lib/python3.5/config-3.5m/python.o
  /usr/lib/python3.5/config-3.5m/Setup.local
  /usr/lib/python3.5/config-3.5m/Setup
  /usr/lib/python3.5/config-3.5m/python-config.py
  /usr/lib/python3.5/config-3.5m/install-sh
  /usr/lib/python3.5/config-3.5m/config.c.in
  /usr/lib/python3.5/config-3.5m/makesetup
  /usr/lib/python3.5/config-3.5m/Setup.config
  /usr/lib/python3.5/config-3.5m/config.c
  /usr/lib/python3.5/config-3.5m/Makefile
  /usr/lib/python3.5/config-3.5m/libpython3.5m.a
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
python3: 14 installed and not shipped files. [installed-vs-shipped]

(From OE-Core rev: 8a96dbe5dd44e1c80aef7b8efe5820dee96a5bd7)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-07 13:40:17 +00:00
Alejandro Hernandez
2268a702f1 python3: Upgrade from 3.4.3 to 3.5
python3-native_3.4.3.bb -> python3-native_3.5.0.bb:
- changed version
- changed cheksum
- no license change, just dates

python3_3.4.3.bb -> python3_3.5.0.bb:
- changed version
- changed cheksum
- no license change, just dates

New:
- use_packed_importlib.patch: Fixes importlib on cross-compile environments

Rebased:
- Manifest
- 000-cross-compile.patch
- 020-dont-compile-python-files.patch
- 04-default-is-optimized.patch
- python-3.3-multilib.patch
- distutils3-base.bbclass
- distutils3-native-base.bbclass
- python3native.bbclass

Upstream:
- makerace.patch

Misc:
- pip2 is handled as default on major distros,
modified python3-pip to leave /usr/bin/pip available for pip2
- Fixed importing pip3 from python3 interpreter

(From OE-Core rev: 701ec1977ced1bb08461e6de98b4f63d21cba8a6)

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>
2015-12-01 21:32:06 +00:00
Ross Burton
1c914a844b meta: Fix Upstream-Status statements
Fix a variety of problems such as typos, bad punctuations, or incorrect
Upstream-Status values.

(From OE-Core rev: bd220fe6ce8c3a0805f13a14706d3130ea872604)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-12 23:01:53 +01:00
Dominic Sacré
10196e3465 python3: delete patches that don't get applied anywhere
These patches are not referenced in any of the Python recipes.

(From OE-Core rev: 05d18a1d2630fbe81d8218c3722481d31bf0892f)

Signed-off-by: Dominic Sacré <dominic.sacre@gmx.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-08-01 22:24:18 +01:00