From e38ff96cc2217df403ea2c5abcd35d42969689d4 Mon Sep 17 00:00:00 2001 From: Anuj Mittal Date: Wed, 12 Sep 2018 17:44:11 +0800 Subject: python3{,native}: update to 3.5.6 Includes changes: 76aa2c0a9a bpo-33216: Clarify the documentation for CALL_FUNCTION_* (#8338) 1b141b9553 Doc: Backport language switcher (bpo-33700, bpo-31045) (#8048) f381cfe07d [3.5] bpo-33001: Prevent buffer overrun in os.symlink (GH-5989) (#5991) 937ac1fe06 [3.5] bpo-32981: Fix catastrophic backtracking vulns (GH-5955) (#6034) Signed-off-by: Anuj Mittal --- .../python/python3-native_3.5.5.bb | 110 ------- .../python/python3-native_3.5.6.bb | 110 +++++++ meta/recipes-devtools/python/python3_3.5.5.bb | 341 --------------------- meta/recipes-devtools/python/python3_3.5.6.bb | 341 +++++++++++++++++++++ 4 files changed, 451 insertions(+), 451 deletions(-) delete mode 100644 meta/recipes-devtools/python/python3-native_3.5.5.bb create mode 100644 meta/recipes-devtools/python/python3-native_3.5.6.bb delete mode 100644 meta/recipes-devtools/python/python3_3.5.5.bb create mode 100644 meta/recipes-devtools/python/python3_3.5.6.bb (limited to 'meta') diff --git a/meta/recipes-devtools/python/python3-native_3.5.5.bb b/meta/recipes-devtools/python/python3-native_3.5.5.bb deleted file mode 100644 index b231542f46..0000000000 --- a/meta/recipes-devtools/python/python3-native_3.5.5.bb +++ /dev/null @@ -1,110 +0,0 @@ -require recipes-devtools/python/python.inc - -PR = "${INC_PR}.0" -PYTHON_MAJMIN = "3.5" -DISTRO_SRC_URI ?= "file://sitecustomize.py" -DISTRO_SRC_URI_linuxstdbase = "" -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 \ -file://python-3.3-multilib.patch \ -file://03-fix-tkinter-detection.patch \ -file://avoid_warning_about_tkinter.patch \ -file://0001-h2py-Fix-issue-13032-where-it-fails-with-UnicodeDeco.patch \ -file://sysroot-include-headers.patch \ -file://unixccompiler.patch \ -${DISTRO_SRC_URI} \ -file://sysconfig.py-add-_PYTHON_PROJECT_SRC.patch \ -file://setup.py-check-cross_compiling-when-get-FLAGS.patch \ -file://0001-Do-not-use-the-shell-version-of-python-config-that-w.patch \ -file://support_SOURCE_DATE_EPOCH_in_py_compile.patch \ -file://regen-all.patch \ -" - -SRC_URI[md5sum] = "f3763edf9824d5d3a15f5f646083b6e0" -SRC_URI[sha256sum] = "063d2c3b0402d6191b90731e0f735c64830e7522348aeb7ed382a83165d45009" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=b6ec515b22618f55fa07276b897bacea" - -# exclude pre-releases for both python 2.x and 3.x -UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P\d+(\.\d+)+).tar" - -S = "${WORKDIR}/Python-${PV}" - -EXTRANATIVEPATH += "bzip2-native" -DEPENDS = "openssl-native bzip2-replacement-native zlib-native readline-native sqlite3-native gdbm-native" - -inherit native - -EXTRA_OECONF_append = " --bindir=${bindir}/${PN} --without-ensurepip" - -EXTRA_OEMAKE = '\ - LIBC="" \ - STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} \ - STAGING_INCDIR=${STAGING_INCDIR_NATIVE} \ - LIB=${baselib} \ - ARCH=${TARGET_ARCH} \ -' - -# No ctypes option for python 3 -PYTHONLSBOPTS = "" - -do_configure_append() { - autoreconf --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi - sed -i -e 's,#define HAVE_GETRANDOM 1,/\* #undef HAVE_GETRANDOM \*/,' ${B}/pyconfig.h -} - -# Regenerate all of the generated files -# This ensures that pgen and friends get created during the compile phase -# -do_compile_prepend() { - # Assuming https://bugs.python.org/issue33080 has been addressed in Makefile. - oe_runmake regen-all -} - -do_install() { - install -d ${D}${libdir}/pkgconfig - oe_runmake 'DESTDIR=${D}' install - if [ -e ${WORKDIR}/sitecustomize.py ]; then - install -m 0644 ${WORKDIR}/sitecustomize.py ${D}/${libdir}/python${PYTHON_MAJMIN} - fi - install -d ${D}${bindir}/${PN} - install -m 0755 Parser/pgen ${D}${bindir}/${PN} - - # Make sure we use /usr/bin/env python - for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do - sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT - done - - # Add a symlink to the native Python so that scripts can just invoke - # "nativepython" and get the right one without needing absolute paths - # (these often end up too long for the #! parser in the kernel as the - # buffer is 128 bytes long). - ln -s python3-native/python3 ${D}${bindir}/nativepython3 -} - -python(){ - - # Read JSON manifest - import json - pythondir = d.getVar('THISDIR',True) - with open(pythondir+'/python3/python3-manifest.json') as manifest_file: - python_manifest=json.load(manifest_file) - - rprovides = d.getVar('RPROVIDES').split() - - # Hardcoded since it cant be python3-native-foo, should be python3-foo-native - pn = 'python3' - - for key in python_manifest: - pypackage = pn + '-' + key + '-native' - if pypackage not in rprovides: - rprovides.append(pypackage) - - d.setVar('RPROVIDES', ' '.join(rprovides)) -} diff --git a/meta/recipes-devtools/python/python3-native_3.5.6.bb b/meta/recipes-devtools/python/python3-native_3.5.6.bb new file mode 100644 index 0000000000..46b3cf398d --- /dev/null +++ b/meta/recipes-devtools/python/python3-native_3.5.6.bb @@ -0,0 +1,110 @@ +require recipes-devtools/python/python.inc + +PR = "${INC_PR}.0" +PYTHON_MAJMIN = "3.5" +DISTRO_SRC_URI ?= "file://sitecustomize.py" +DISTRO_SRC_URI_linuxstdbase = "" +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 \ +file://python-3.3-multilib.patch \ +file://03-fix-tkinter-detection.patch \ +file://avoid_warning_about_tkinter.patch \ +file://0001-h2py-Fix-issue-13032-where-it-fails-with-UnicodeDeco.patch \ +file://sysroot-include-headers.patch \ +file://unixccompiler.patch \ +${DISTRO_SRC_URI} \ +file://sysconfig.py-add-_PYTHON_PROJECT_SRC.patch \ +file://setup.py-check-cross_compiling-when-get-FLAGS.patch \ +file://0001-Do-not-use-the-shell-version-of-python-config-that-w.patch \ +file://support_SOURCE_DATE_EPOCH_in_py_compile.patch \ +file://regen-all.patch \ +" + +SRC_URI[md5sum] = "f5a99f765e765336a3ebbb2a24ca2be3" +SRC_URI[sha256sum] = "f55cde04f521f273c7cba08912921cc5642cfc15ca7b22d5829f0aff4371155f" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=b6ec515b22618f55fa07276b897bacea" + +# exclude pre-releases for both python 2.x and 3.x +UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P\d+(\.\d+)+).tar" + +S = "${WORKDIR}/Python-${PV}" + +EXTRANATIVEPATH += "bzip2-native" +DEPENDS = "openssl-native bzip2-replacement-native zlib-native readline-native sqlite3-native gdbm-native" + +inherit native + +EXTRA_OECONF_append = " --bindir=${bindir}/${PN} --without-ensurepip" + +EXTRA_OEMAKE = '\ + LIBC="" \ + STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} \ + STAGING_INCDIR=${STAGING_INCDIR_NATIVE} \ + LIB=${baselib} \ + ARCH=${TARGET_ARCH} \ +' + +# No ctypes option for python 3 +PYTHONLSBOPTS = "" + +do_configure_append() { + autoreconf --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi + sed -i -e 's,#define HAVE_GETRANDOM 1,/\* #undef HAVE_GETRANDOM \*/,' ${B}/pyconfig.h +} + +# Regenerate all of the generated files +# This ensures that pgen and friends get created during the compile phase +# +do_compile_prepend() { + # Assuming https://bugs.python.org/issue33080 has been addressed in Makefile. + oe_runmake regen-all +} + +do_install() { + install -d ${D}${libdir}/pkgconfig + oe_runmake 'DESTDIR=${D}' install + if [ -e ${WORKDIR}/sitecustomize.py ]; then + install -m 0644 ${WORKDIR}/sitecustomize.py ${D}/${libdir}/python${PYTHON_MAJMIN} + fi + install -d ${D}${bindir}/${PN} + install -m 0755 Parser/pgen ${D}${bindir}/${PN} + + # Make sure we use /usr/bin/env python + for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do + sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT + done + + # Add a symlink to the native Python so that scripts can just invoke + # "nativepython" and get the right one without needing absolute paths + # (these often end up too long for the #! parser in the kernel as the + # buffer is 128 bytes long). + ln -s python3-native/python3 ${D}${bindir}/nativepython3 +} + +python(){ + + # Read JSON manifest + import json + pythondir = d.getVar('THISDIR',True) + with open(pythondir+'/python3/python3-manifest.json') as manifest_file: + python_manifest=json.load(manifest_file) + + rprovides = d.getVar('RPROVIDES').split() + + # Hardcoded since it cant be python3-native-foo, should be python3-foo-native + pn = 'python3' + + for key in python_manifest: + pypackage = pn + '-' + key + '-native' + if pypackage not in rprovides: + rprovides.append(pypackage) + + d.setVar('RPROVIDES', ' '.join(rprovides)) +} diff --git a/meta/recipes-devtools/python/python3_3.5.5.bb b/meta/recipes-devtools/python/python3_3.5.5.bb deleted file mode 100644 index 15ec7d7fda..0000000000 --- a/meta/recipes-devtools/python/python3_3.5.5.bb +++ /dev/null @@ -1,341 +0,0 @@ -require recipes-devtools/python/python.inc - -DEPENDS = "python3-native libffi bzip2 gdbm openssl \ - sqlite3 zlib virtual/libintl xz qemu-native \ - qemu-helper-native virtual/crypt" - -PR = "${INC_PR}.0" -PYTHON_MAJMIN = "3.5" -PYTHON_BINABI = "${PYTHON_MAJMIN}m" -DISTRO_SRC_URI ?= "file://sitecustomize.py" -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 \ -file://tweak-MULTIARCH-for-powerpc-linux-gnuspe.patch \ -file://support_SOURCE_DATE_EPOCH_in_py_compile.patch \ -${DISTRO_SRC_URI} \ -" - -SRC_URI += "\ - file://03-fix-tkinter-detection.patch \ - file://avoid_warning_about_tkinter.patch \ - file://cgi_py.patch \ - file://host_include_contamination.patch \ - file://python-3.3-multilib.patch \ - file://sysroot-include-headers.patch \ - file://unixccompiler.patch \ - file://avoid-ncursesw-include-path.patch \ - file://python3-use-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch \ - file://sysconfig.py-add-_PYTHON_PROJECT_SRC.patch \ - file://setup.py-check-cross_compiling-when-get-FLAGS.patch \ - file://configure.ac-fix-LIBPL.patch \ - file://0001-Issue-21272-Use-_sysconfigdata.py-to-initialize-dist.patch \ - file://pass-missing-libraries-to-Extension-for-mul.patch \ - file://Use-correct-CFLAGS-for-extensions-when-cross-compili.patch \ - file://0002-Makefile-add-target-to-split-profile-generation.patch \ - file://float-endian.patch \ - file://ftplib.patch \ - file://signal.patch \ - " -SRC_URI[md5sum] = "f3763edf9824d5d3a15f5f646083b6e0" -SRC_URI[sha256sum] = "063d2c3b0402d6191b90731e0f735c64830e7522348aeb7ed382a83165d45009" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=b6ec515b22618f55fa07276b897bacea" - -# exclude pre-releases for both python 2.x and 3.x -UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P\d+(\.\d+)+).tar" - -S = "${WORKDIR}/Python-${PV}" - -inherit autotools multilib_header python3native pkgconfig update-alternatives qemu - -MULTILIB_SUFFIX = "${@d.getVar('base_libdir',1).split('/')[-1]}" - -ALTERNATIVE_${PN}-dev = "python-config" -ALTERNATIVE_LINK_NAME[python-config] = "${bindir}/python${PYTHON_BINABI}-config" -ALTERNATIVE_TARGET[python-config] = "${bindir}/python${PYTHON_BINABI}-config-${MULTILIB_SUFFIX}" - -CONFIGUREOPTS += " --with-system-ffi " - -CACHED_CONFIGUREVARS = "ac_cv_have_chflags=no \ - ac_cv_have_lchflags=no \ - ac_cv_have_long_long_format=yes \ - ac_cv_buggy_getaddrinfo=no \ - ac_cv_file__dev_ptmx=yes \ - ac_cv_file__dev_ptc=no \ -" - -TARGET_CC_ARCH += "-DNDEBUG -fno-inline" -SDK_CC_ARCH += "-DNDEBUG -fno-inline" -EXTRA_OEMAKE += "CROSS_COMPILE=yes" -EXTRA_OECONF += "CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ --without-ensurepip" - -PYTHON3_PROFILE_TASK ?= "./python -m test.regrtest --pgo test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_support || true" - -export CROSS_COMPILE = "${TARGET_PREFIX}" -export _PYTHON_PROJECT_BASE = "${B}" -export _PYTHON_PROJECT_SRC = "${S}" -export CCSHARED = "-fPIC" - -# Fix cross compilation of different modules -export CROSSPYTHONPATH = "${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/:${B}/build/lib.linux-${TARGET_ARCH}-${PYTHON_MAJMIN}:${S}/Lib:${S}/Lib/plat-linux" - -# No ctypes option for python 3 -PYTHONLSBOPTS = "" - -PACKAGECONFIG ??= "readline ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'pgo', '', d)}" -PACKAGECONFIG[readline] = ",,readline" -# Use profile guided optimisation by running PyBench inside qemu-user -PACKAGECONFIG[pgo] = "--enable-optimizations" - -do_configure_append() { - rm -f ${S}/Makefile.orig - autoreconf -Wcross --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi -} - -run_make() { - oe_runmake PGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \ - HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \ - STAGING_LIBDIR=${STAGING_LIBDIR} \ - STAGING_INCDIR=${STAGING_INCDIR} \ - STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \ - LIB=${baselib} \ - ARCH=${TARGET_ARCH} \ - OPT="${CFLAGS}" \ - "$@" -} - -do_compile() { - # regenerate platform specific files, because they depend on system headers - cd ${S}/Lib/plat-linux* - include=${STAGING_INCDIR} ${STAGING_BINDIR_NATIVE}/python3-native/python3 \ - ${S}/Tools/scripts/h2py.py -i '(u_long)' \ - ${STAGING_INCDIR}/dlfcn.h \ - ${STAGING_INCDIR}/linux/cdrom.h \ - ${STAGING_INCDIR}/netinet/in.h \ - ${STAGING_INCDIR}/sys/types.h - sed -e 's,${STAGING_DIR_HOST},,g' -i *.py - cd - - - # remove any bogus LD_LIBRARY_PATH - sed -i -e s,RUNSHARED=.*,RUNSHARED=, Makefile - - if [ ! -f Makefile.orig ]; then - install -m 0644 Makefile Makefile.orig - fi - sed -i -e 's,^CONFIGURE_LDFLAGS=.*,CONFIGURE_LDFLAGS=-L. -L${STAGING_LIBDIR},g' \ - -e 's,libdir=${libdir},libdir=${STAGING_LIBDIR},g' \ - -e 's,libexecdir=${libexecdir},libexecdir=${STAGING_DIR_HOST}${libexecdir},g' \ - -e 's,^LIBDIR=.*,LIBDIR=${STAGING_LIBDIR},g' \ - -e 's,includedir=${includedir},includedir=${STAGING_INCDIR},g' \ - -e 's,^INCLUDEDIR=.*,INCLUDE=${STAGING_INCDIR},g' \ - -e 's,^CONFINCLUDEDIR=.*,CONFINCLUDE=${STAGING_INCDIR},g' \ - Makefile - # save copy of it now, because if we do it in do_install and - # then call do_install twice we get Makefile.orig == Makefile.sysroot - install -m 0644 Makefile Makefile.sysroot - - if ${@bb.utils.contains('PACKAGECONFIG', 'pgo', 'true', 'false', d)}; then - run_make profile-opt - qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${B}', '${STAGING_DIR_TARGET}/${base_libdir}'])}" - cat >pgo-wrapper <pgo-wrapper <