summaryrefslogtreecommitdiff
path: root/poky/meta/recipes-devtools/python
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2018-11-23 00:55:50 +0300
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2019-01-09 04:36:32 +0300
commita5c52ff0bb57fccc2dcd3bd10647d2fa77ddf8c3 (patch)
treee085aadbd071233b82de4a8c76d269f9d746daaa /poky/meta/recipes-devtools/python
parent1a4b7ee28bf7413af6513fb45ad0d0736048f866 (diff)
downloadopenbmc-a5c52ff0bb57fccc2dcd3bd10647d2fa77ddf8c3.tar.xz
poky: thud refresh 87e3a9739d..1cab405d88
Update poky to thud HEAD. Adrian Bunk (1): archiver.bbclass: Fix COPYLEFT_LICENSE_{IN, EX}CLUDE Adrian Freihofer (2): systemd: fix PN-container package splitting devtool: fix target-deploy --strip Alejandro Enedino Hernandez Samaniego (1): python: Adds instructions to the manifest file Alexander Kanavin (3): meson: do not manipulate the environment when looking for python via pkg-config openssl: update to 1.1.1a libc-package: fix postinst error when ENABLE_BINARY_LOCALE_GENERATION = "0" Alexey Brodkin (1): gdb: Remove long ago upstreamed patch André Draszik (1): linux-firmware: better packaging for TI wl12xx & wl18xx firmwares Anuj Mittal (13): maintainers.inc: update Intel owners gst-plugins-bad: add PACKAGECONFIG for msdk gstreamer1.0: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-plugins-base: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-plugins-good: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-plugins-bad: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-plugins-ugly: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-libav: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-vaapi: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-rtsp-server: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-omx: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-python: upgrade 1.14.3 -> 1.14.4 gst-validate: upgrade 1.14.2 -> 1.14.4 Armin Kuster (1): gnutls: update to 3.6.4 Bruce Ashfield (13): linux-yocto: remove obselete options from lxc config linux-yocto/4.14: configuration cleanups linux-yocto/4.18: -rt sync and config cleanups linux-yocto/tiny: switch default branch to standard/tiny/base linux-yocto/tiny: restore qemuarm support linux-yocto/4.18: bug fixes and configuration tweaks linux-yocto/4.18: update to v4.18.17 linux-yocto/4.14: update to v4.14.79 linux-yocto/4.18: integrate CVE fixes linux-yocto/4.18: update to v4.18.20 linux-yocto/4.18: update to v4.18.21 linux-yocto: configuration updates (virtio and tpm) linux-yocto: correct qemumips64el definition Carlos Rafael Giani (10): gstreamer1.0: upgrade to version 1.14.3 gstreamer1.0-plugin-base: upgrade to version 1.14.3 gstreamer1.0-plugin-good: upgrade to version 1.14.3 gstreamer1.0-plugin-bad: upgrade to version 1.14.3 gstreamer1.0-plugin-ugly: upgrade to version 1.14.3 gstreamer1.0-libav: upgrade to version 1.14.3 gstreamer1.0-rtsp-server: upgrade to version 1.14.3 gstreamer1.0-vaapi: upgrade to version 1.14.3 gstreamer1.0-omx: upgrade to version 1.14.3 gstreamer1.0-python: upgrade to version 1.14.3 Changhyeok Bae (2): iproute2: 4.18.0 -> 4.19.0 ethtool: 4.17 -> 4.19 Christophe PRIOUZEAU (1): openssl: correct bad path on package preprocess Douglas Royds (4): boost-context: Reproducibility: Set .file section for all *_elf_gas.S files reproducible: Refactor: Break out fixed_source_date_epoch() function reproducible: Don't look for youngest file when no source tarball ptest: Reproducibility: Take control of umask Eric Chanudet (1): licence: Add license file CC-BY-SA-4.0 Hongxu Jia (6): elfutils: 0.174 -> 0.175 gnupg: upgrade 2.2.9 -> 2.2.10 gnupg: upgrade 2.2.10 -> 2.2.11 libgcrypt: upgrade 1.8.3 -> 1.8.4 ghostscript: 9.25 -> 9.26 go 1.9/1.11: fix textrel qa warning for non mips arch Joshua Watt (3): meta/icecc.bbclass: Move system blacklist to variables meta/icecc.bbclass: Update system blacklists classes/icecc.bbclass: Fix ccache disable Kai Kang (1): multilib_script: fix packages split Khem Raj (3): valgrind: Skip vgpreload_memcheck shared object from stripping populate_sdk_ext.bbclass: Include site.conf in parsing for contents for local.conf local.conf.sample: Update the sample config as per new migration manual Ming Liu (1): image.bbclass: fix a wrong position blank Mingli Yu (2): mdadm: improve the run-ptest nspr: improve reproducibility Niko Mauno (1): opkg-utils: Fix update-alternatives link relocation Otavio Salvador (1): linux-firmware: Bump revision to 1baa348 Paul Eggleton (1): socat: fix LICENSE Peter Kjellerstedt (3): meson: Correct use of the _append operator bitbake: bitbake-diffsigs: Merge with bitbake-dumpsig bitbake: bitbake-diffsigs: Support recursive deps with signature files Richard Purdie (9): meson: Disable rpath stripping at install time scripts/runqemu: Fix logic error causing failures with MACHINE from the environment meta-selftest/error: Cleanup large trailing whitespace bitbake: server/process: Make lockfile handling clearer bitbake: server/process: Show the last 60 log lines, not the last 10 bitbake: server/process: Show last 60 lines of the log if the server didn't start poky.conf: Update the distros we test against on the autobuilder poky: Update version to 2.6.1 build-appliance-image: Update to thud head revision Robert Yang (5): classes: Remove tab indentations in python code recipes: Remove tab indentations in python code bugzilla.bbclass: Remove it since obsoleted sstate.bbclass: Only remove sstate file when task is existed bitbake: server/process: print a message when no logfile Ross Burton (12): cpio: fix crash when appending to archives image_types: use cpio-native to build cpio images libtasn1: no need to inherit binconfig binconfig: only try to mangles files piglit: add missing waffle-bin dependency ruby: upgrade 2.5.1 -> 2.5.3 insane: Clarify GNU_HASH warning patchreview: Various fixes/improvements python3: don't cripple target distutils python3: drop redundant patch bitbake: layerindex: don't use shell=True when cloning bitbake: fetch: don't use shell=True when listing ar files Zheng Ruoqin (2): nss: Fix SHA_HTONL bug for arm 32be. createrepo-c: Fix setup of logging (log domains) Change-Id: I025dd27f44e57af38abff110ebc331e371bc461b Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'poky/meta/recipes-devtools/python')
-rw-r--r--poky/meta/recipes-devtools/python/python-native_2.7.15.bb6
-rw-r--r--poky/meta/recipes-devtools/python/python/create_manifest2.py21
-rw-r--r--poky/meta/recipes-devtools/python/python/python2-manifest.json90
-rw-r--r--poky/meta/recipes-devtools/python/python3-native_3.5.6.bb1
-rw-r--r--poky/meta/recipes-devtools/python/python3/070-dont-clean-ipkg-install.patch38
-rw-r--r--poky/meta/recipes-devtools/python/python3_3.5.6.bb4
-rw-r--r--poky/meta/recipes-devtools/python/python_2.7.15.bb6
7 files changed, 118 insertions, 48 deletions
diff --git a/poky/meta/recipes-devtools/python/python-native_2.7.15.bb b/poky/meta/recipes-devtools/python/python-native_2.7.15.bb
index 7c491fa3e..de35104c6 100644
--- a/poky/meta/recipes-devtools/python/python-native_2.7.15.bb
+++ b/poky/meta/recipes-devtools/python/python-native_2.7.15.bb
@@ -69,7 +69,11 @@ python(){
import json
pythondir = d.getVar('THISDIR',True)
with open(pythondir+'/python/python2-manifest.json') as manifest_file:
- python_manifest=json.load(manifest_file)
+ manifest_str = manifest_file.read()
+ json_start = manifest_str.find('# EOC') + 6
+ manifest_file.seek(json_start)
+ manifest_str = manifest_file.read()
+ python_manifest = json.loads(manifest_str)
rprovides = d.getVar('RPROVIDES').split()
diff --git a/poky/meta/recipes-devtools/python/python/create_manifest2.py b/poky/meta/recipes-devtools/python/python/create_manifest2.py
index 87999991d..b6748653b 100644
--- a/poky/meta/recipes-devtools/python/python/create_manifest2.py
+++ b/poky/meta/recipes-devtools/python/python/create_manifest2.py
@@ -22,7 +22,7 @@
#
#
# This way we will create a new manifest from the data structure that was built during
-# this process, ont this new manifest each package will contain specifically only
+# this process, on this new manifest each package will contain specifically only
# what it needs to run.
#
# There are some caveats which we try to deal with, such as repeated files on different
@@ -30,7 +30,7 @@
# Its also important to note that this method only works for python files, and shared
# libraries. Static libraries, header files and binaries need to be dealt with manually.
#
-# Author: Alejandro Enedino Hernandez Samaniego "aehs29" <aehs29@gmail.com>
+# Author: Alejandro Enedino Hernandez Samaniego "aehs29" <aehs29 at gmail dot com>
import sys
@@ -62,10 +62,21 @@ def isFolder(value):
else:
return False
+def prepend_comments(comments, json_manifest):
+ with open(json_manifest, 'r+') as manifest:
+ json_contents = manifest.read()
+ manifest.seek(0, 0)
+ manifest.write(comments + json_contents)
+
# Read existing JSON manifest
with open('python2-manifest.json') as manifest:
- old_manifest = json.load(manifest, object_pairs_hook=collections.OrderedDict)
-
+ # The JSON format doesn't allow comments so we hack the call to keep the comments using a marker
+ manifest_str = manifest.read()
+ json_start = manifest_str.find('# EOC') + 6 # EOC + \n
+ manifest.seek(0)
+ comments = manifest.read(json_start)
+ manifest_str = manifest.read()
+ old_manifest = json.loads(manifest_str, object_pairs_hook=collections.OrderedDict)
# First pass to get core-package functionality, because we base everything on the fact that core is actually working
# Not exactly the same so it should not be a function
@@ -277,3 +288,5 @@ for key in new_manifest:
# Create the manifest from the data structure that was built
with open('python2-manifest.json.new','w') as outfile:
json.dump(new_manifest,outfile, indent=4)
+
+prepend_comments(comments,'python2-manifest.json.new')
diff --git a/poky/meta/recipes-devtools/python/python/python2-manifest.json b/poky/meta/recipes-devtools/python/python/python2-manifest.json
index 260fa6f80..c092e69d3 100644
--- a/poky/meta/recipes-devtools/python/python/python2-manifest.json
+++ b/poky/meta/recipes-devtools/python/python/python2-manifest.json
@@ -1,3 +1,93 @@
+# DO NOT (entirely) modify this file manually, please read.
+#
+# IMPORTANT NOTE:
+# Please keep in mind that the create_manifest task relies on the fact the the
+# target and native Python packages are the same, and it also needs to be executed
+# with a fully working native package (with all the PACKAGECONFIGs enabled and all
+# and all the modules should be working, check log.do_compile), otherwise the script
+# will fail to find dependencies correctly, this note is valid either if you are
+# upgrading to a new Python version or adding a new package.
+#
+#
+# If you are adding a new package please follow the next steps:
+# How to add a new package:
+# - If a user wants to add a new package all that has to be done is:
+# Modify the python2-manifest.json file, and add the required file(s) to the FILES list,
+# fill up the SUMMARY section as well, the script should handle all the rest.
+#
+# Real example:
+# We want to add a web browser package, including the file webbrowser.py
+# which at the moment is on python-misc.
+# "webbrowser": {
+# "files": ["${libdir}/python2.7/lib-dynload/webbrowser.py"],
+# "rdepends": [],
+# "summary": "Python Web Browser support"}
+#
+# * Note that the rdepends field was left empty
+#
+# We run $ bitbake python -c create_manifest and the resulting manifest
+# should be completed after a few seconds, showing something like:
+# "webbrowser": {
+# "files": ["${libdir}/python2.7/webbrowser.py"],
+# "rdepends": ["core","fcntl","io","pickle","shell","subprocess"],
+# "summary": "Python Web Browser support"}
+#
+#
+# If you are upgrading Python to a new version please follow the next steps:
+# After each Python upgrade, the create_manifest task should be executed, because we
+# don't control what changes on upstream Python, so, some module dependency
+# might have changed without us realizing it, a certain module can either have
+# more or less dependencies, or could be depending on a new file that was just
+# created on the new release and for obvious reasons we wouldn't have it on our
+# old manifest, all of these issues would cause runtime errors on our system.
+#
+# - Upgrade both the native and target Python packages to a new version
+# - Run the create_manifest task for the target Python package as its shown below:
+#
+# $ bitbake python -c create_manifest
+#
+# This will automatically replace your manifest file located under the Python directory
+# with an new one, which contains the new dependencies (if any).
+#
+# Several things could have gone wrong here, I will try to explain a few:
+#
+# a) A new file was introduced on this release, e.g. sha3*.so:
+# The task will check what its needed to import every module, more than one module would
+# would probably depend on sha3*.so, although only one module should contain it.
+#
+# After running the task, the new manifest will have the sha3*.so file on more than one
+# module, you need to manually decide which one of them should get it and delete it from
+# the others, for example sha3*.so should likely be on ${PN}-crypt.
+# Once you have deleted from the others you need to run the create_manifest task again,
+# this will populate the other module's rdepends fields, with ${PN}-crypt and you should be
+# good to go.
+#
+# b) The native package wasn't built correctly and its missing a certain module:
+# As mentioned before, you need to make sure the native package was built with all the modules
+# because it is used as base to build the manifest file, you need to manually check log.do_compile
+# since it won't error out the compile function if its only missing a couple of modules.
+#
+# e.g. missing the _uuid module, log.do_compile would show the following:
+# Python build finished successfully!
+# The necessary bits to build these optional modules were not found:
+# _uuid
+#
+# What will happen here is that the new manifest would not be aware that the _uuid module exists, so
+# not only we won't know of any dependencies to it, but also, the _uuid* files will be packaged on
+# the misc package (which is where any file that doesn't belong anywhere else ends up).
+#
+# This will eventually cause runtime errors on our system if we don't include the misc package on
+# on our image, because the _uuid files will be missing.
+# If we build the _uuid module correctly and run the create_manifest task the _uuid files will be
+# detected correctly along with its dependencies, and we will get a working manifest.
+#
+# This is the reason why it is important to make sure we have a fully working native build,
+# so we can avoid these errors.
+#
+#
+#
+# DO NOT MODIFY THE NEXT LINE!, IT IS USED AS A MARKER FOR THE ACTUAL JSON MANIFEST
+# EOC
{
"tests": {
"summary": "Python test suite",
diff --git a/poky/meta/recipes-devtools/python/python3-native_3.5.6.bb b/poky/meta/recipes-devtools/python/python3-native_3.5.6.bb
index d5953cf4b..56236da07 100644
--- a/poky/meta/recipes-devtools/python/python3-native_3.5.6.bb
+++ b/poky/meta/recipes-devtools/python/python3-native_3.5.6.bb
@@ -6,7 +6,6 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
file://12-distutils-prefix-is-inside-staging-area.patch \
file://python-config.patch \
file://030-fixup-include-dirs.patch \
-file://070-dont-clean-ipkg-install.patch \
file://080-distutils-dont_adjust_files.patch \
file://130-readline-setup.patch \
file://150-fix-setupterm.patch \
diff --git a/poky/meta/recipes-devtools/python/python3/070-dont-clean-ipkg-install.patch b/poky/meta/recipes-devtools/python/python3/070-dont-clean-ipkg-install.patch
deleted file mode 100644
index f9971c6ba..000000000
--- a/poky/meta/recipes-devtools/python/python3/070-dont-clean-ipkg-install.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-consider opkg directories when cleaning up
-
--Khem
-
-Upstream-Status: Inappropriate [OE specific]
-
----
- Makefile.pre.in | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-Index: Python-3.5.3/Makefile.pre.in
-===================================================================
---- Python-3.5.3.orig/Makefile.pre.in
-+++ Python-3.5.3/Makefile.pre.in
-@@ -1574,8 +1574,8 @@ touch:
- # Sanitation targets -- clean leaves libraries, executables and tags
- # files, which clobber removes as well
- pycremoval:
-- -find $(srcdir) -depth -name '__pycache__' -exec rm -rf {} ';'
-- -find $(srcdir) -name '*.py[co]' -exec rm -f {} ';'
-+ -find $(srcdir) ! -path './ipkg-install/*' -depth -name '__pycache__' -exec rm -rf {} ';'
-+ -find $(srcdir) ! -path './ipkg-install/*' -name '*.py[co]' -exec rm -f {} ';'
-
- rmtestturds:
- -rm -f *BAD *GOOD *SKIPPED
-@@ -1589,9 +1589,9 @@ docclean:
- -rm -rf Doc/tools/sphinx Doc/tools/pygments Doc/tools/docutils
-
- clean: pycremoval
-- find . -name '*.[oa]' -exec rm -f {} ';'
-- find . -name '*.s[ol]' -exec rm -f {} ';'
-- find . -name '*.so.[0-9]*.[0-9]*' -exec rm -f {} ';'
-+ find . ! -path './ipkg-install/*' -name '*.[oa]' -exec rm -f {} ';'
-+ find . ! -path './ipkg-install/*' -name '*.s[ol]' -exec rm -f {} ';'
-+ find . ! -path './ipkg-install/*' -name '*.so.[0-9]*.[0-9]*' -exec rm -f {} ';'
- find build -name 'fficonfig.h' -exec rm -f {} ';' || true
- find build -name '*.py' -exec rm -f {} ';' || true
- find build -name '*.py[co]' -exec rm -f {} ';' || true
diff --git a/poky/meta/recipes-devtools/python/python3_3.5.6.bb b/poky/meta/recipes-devtools/python/python3_3.5.6.bb
index 31f8eada1..2cb65045a 100644
--- a/poky/meta/recipes-devtools/python/python3_3.5.6.bb
+++ b/poky/meta/recipes-devtools/python/python3_3.5.6.bb
@@ -9,8 +9,6 @@ DISTRO_SRC_URI_linuxstdbase = ""
SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
file://python-config.patch \
file://030-fixup-include-dirs.patch \
-file://070-dont-clean-ipkg-install.patch \
-file://080-distutils-dont_adjust_files.patch \
file://130-readline-setup.patch \
file://150-fix-setupterm.patch \
file://0001-h2py-Fix-issue-13032-where-it-fails-with-UnicodeDeco.patch \
@@ -285,7 +283,7 @@ python(){
for value in python_manifest[key]['files']:
d.appendVar('FILES_' + pypackage, ' ' + value)
- # Add cached files
+ # Add cached files
if include_pycs == '1':
for value in python_manifest[key]['cached']:
d.appendVar('FILES_' + pypackage, ' ' + value)
diff --git a/poky/meta/recipes-devtools/python/python_2.7.15.bb b/poky/meta/recipes-devtools/python/python_2.7.15.bb
index dd969d8e7..c22c762d9 100644
--- a/poky/meta/recipes-devtools/python/python_2.7.15.bb
+++ b/poky/meta/recipes-devtools/python/python_2.7.15.bb
@@ -198,7 +198,11 @@ python(){
bb.parse.mark_dependency(d, filename)
with open(filename) as manifest_file:
- python_manifest=json.load(manifest_file, object_pairs_hook=collections.OrderedDict)
+ manifest_str = manifest_file.read()
+ json_start = manifest_str.find('# EOC') + 6
+ manifest_file.seek(json_start)
+ manifest_str = manifest_file.read()
+ python_manifest = json.loads(manifest_str, object_pairs_hook=collections.OrderedDict)
include_pycs = d.getVar('INCLUDE_PYCS')