Python3: Bump to 3.7.0
PATCH v3 1/1 Python3: Bump to 3.7.0
From: Adam Duskett <[email protected]>
Other changes include:
- Refreshing all necessary patches for 3.7.0
- Add a hash for the license file.
- Python no longer has it's own internal libffi, as such, host-libffi is now required to build host-python3, and is added as a dependency.
- A new core module "uuid" is now is added in the Config.in file, and relies on util-linux's uuid library.
- Also, a new patch: 0030-Fix-cross-compiling-the-uuid-module.patch is required to fix compiling the uuid module, because the include directory search path for uuid.h is hardcoded to /usr/include/uuid, which causes an "unsafe for cross-compilation" error during compiling if the host pc has uuid headers installed.
To fix this error, a new variable called uuid_inc_dirs with the original path of "/usr/include/uuid" is added to setup.py, then if the environment variable STAGING_DIR exists, the STAGING_DIR path is added to the beginning of the uuid_inc_dirs variable.
- Add a new patch: 0031-fix-building-on-older-distributions.patch This patch changes os.replace to os.rename in the update_file.py script to fix building on older Linux distributions that have older versions of python that don't include os.replace.
os.rename acts in the same way as os.replace, but is cross-platform compatible. Because Buildroot is guaranteed to be built in a POSIX environment, it is safe to change replace to rename.
Tested on CentOS7 and Fedora28, All test results passed:
br-arm-full [1/6]: OK
br-arm-cortex-a9-glibc [2/6]: OK
br-arm-cortex-m4-full [3/6]: SKIPPED
br-x86-64-musl [4/6]: OK
br-arm-full-static [5/6]: SKIPPEDarmv5-ctng-linux-gnueabi [6/6]: OK
6 builds, 2 skipped, 0 build failed, 0 legal-info failed
---
Changes v1 -> v2:
- Fixed patch name.
- Removed unnecessary SOB lines in some of the updated patches.
Changes v2 -> v3:
- Added 0031-fix-building-on-older-distributions.patch
...1-Make-the-build-of-pyc-files-conditional.patch | 6 ++-- ...gy_getaddrinfo-configure-test-when-cross-.patch | 2 +- ...ructure-to-disable-the-build-of-certain-e.patch | 18 +++++----- ...ibrary-header-paths-for-cross-compilation.patch | 4 ++- ...n-t-look-in-usr-lib-termcap-for-libraries.patch | 2 +- .../python3/0006-Don-t-add-multiarch-paths.patch | 2 +- .../0007-Abort-on-failed-module-build.patch | 2 +- package/python3/0008-Serial-ioctl-workaround.patch | 2 +- ...-config.sh.in-ensure-sed-invocations-only.patch | 39 +++++++++++++--------- ...stem-locale-and-set-to-default-when-addin.patch | 2 +- ...0012-Add-importlib-fix-for-PEP-3147-issue.patch | 6 ++-- ...on-to-disable-installation-of-test-module.patch | 23 +++++++------ .../0014-Add-an-option-to-disable-pydoc.patch | 16 +++++---- .../0015-Add-an-option-to-disable-lib2to3.patch | 18 +++++----- ...-Add-option-to-disable-the-sqlite3-module.patch | 12 ++++--- ...17-Add-an-option-to-disable-the-tk-module.patch | 8 ++--- ...dd-an-option-to-disable-the-curses-module.patch | 6 ++-- .../0019-Add-an-option-to-disable-expat.patch | 12 ++++--- .../0020-Add-an-option-to-disable-CJK-codecs.patch | 2 +- .../0021-Add-an-option-to-disable-NIS.patch | 2 +- ...0022-Add-an-option-to-disable-unicodedata.patch | 2 +- .../0023-Add-an-option-to-disable-IDLE.patch | 10 +++--- .../0024-Add-an-option-to-disable-decimal.patch | 8 +++-- ...-option-to-disable-the-ossaudiodev-module.patch | 2 +- ...-Add-an-option-to-disable-openssl-support.patch | 2 +- ...-an-option-to-disable-the-readline-module.patch | 2 +- ...ions-to-disable-zlib-bzip2-and-xz-modules.patch | 2 +- ...29-python-config.sh-don-t-reassign-prefix.patch | 24 +++++++------ .../0030-Fix-cross-compiling-the-uuid-module.patch | 38 +++++++++++++++++++++ .../0031-fix-building-on-older-distributions.patch | 38 +++++++++++++++++++++ package/python3/Config.in | 10 ++++++ package/python3/python3.hash | 7 ++-- package/python3/python3.mk | 10 ++++-- 33 files changed, 229 insertions(+), 110 deletions(-) create mode 100644 package/python3/0030-Fix-cross-compiling-the-uuid-module.patch create mode 100644 package/python3/0031-fix-building-on-older-distributions.patch
package/python3/0001-Make-the-build-of-pyc-files-conditional.patch +3 -3
@@ -18,7 +18,7 @@ diff --git a/Makefile.pre.in b/Makefile.pre.in index 82e830727e..b38bd79121 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1311,6 +1311,7 @@ libinstall: build_all $(srcdir)/Modules/xxmodule.c +@@ -1385,6 +1385,7 @@ libinstall: build_all $(srcdir)/Modules/xxmodule.c $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \ $(DESTDIR)$(LIBDEST)/distutils/tests ; \ fi
@@ -26,7 +26,7 @@ index 82e830727e..b38bd79121 100644 -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ -d $(LIBDEST) -f \ -@@ -1338,6 +1339,7 @@ libinstall: build_all $(srcdir)/Modules/xxmodule.c +@@ -1412,6 +1413,7 @@ libinstall: build_all $(srcdir)/Modules/xxmodule.c $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \ -d $(LIBDEST)/site-packages -f \ -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
@@ -38,7 +38,7 @@ diff --git a/configure.ac b/configure.ac index 962006704f..a76b5444df 100644 --- a/configure.ac +++ b/configure.ac -@@ -1113,6 +1113,12 @@ fi +@@ -1107,6 +1107,12 @@ fi AC_MSG_CHECKING(LDLIBRARY)
package/python3/0002-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch +1 -1
@@ -13,7 +13,7 @@ diff --git a/configure.ac b/configure.ac index a76b5444df..5f87c4db5a 100644 --- a/configure.ac +++ b/configure.ac -@@ -3939,7 +3939,7 @@ fi +@@ -3985,7 +3985,7 @@ fi AC_MSG_RESULT($ac_cv_buggy_getaddrinfo)
package/python3/0003-Add-infrastructure-to-disable-the-build-of-certain-e.patch +10 -8
@@ -37,6 +37,8 @@ then extended by Thomas Petazzoni Signed-off-by: Thomas Petazzoni <[email protected]> [ Andrey Smirnov: ported to Python 3.6 ] Signed-off-by: Andrey Smirnov <[email protected]> +[aduskett at gmail.com: Update for python 3.7.0] +Signed-off-by: Adam Duskett <[email protected]> --- Makefile.pre.in | 6 +++++- configure.ac | 2 ++
@@ -47,7 +49,7 @@ diff --git a/Makefile.pre.in b/Makefile.pre.in index b38bd79121..4ce917ab8d 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -190,6 +190,8 @@ FILEMODE= 644 +@@ -196,6 +196,8 @@ FILEMODE= 644 # configure script arguments CONFIG_ARGS= @CONFIG_ARGS@
@@ -56,15 +58,15 @@ index b38bd79121..4ce917ab8d 100644 # Subdirectories with code SRCDIRS= @SRCDIRS@ -@@ -575,6 +577,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o +@@ -609,6 +611,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o esac; \ - $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ + echo "$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ + DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \ - $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build - - -@@ -1436,7 +1439,8 @@ libainstall: @DEF_MAKE_RULE@ python-config + $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build"; \ + $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ + _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ +@@ -1508,7 +1511,8 @@ libainstall: @DEF_MAKE_RULE@ python-config # Install the dynamically loadable modules # This goes into $(exec_prefix) sharedinstall: sharedmods
@@ -78,7 +80,7 @@ diff --git a/configure.ac b/configure.ac index 5f87c4db5a..d5ee2aedfb 100644 --- a/configure.ac +++ b/configure.ac -@@ -2810,6 +2810,8 @@ LIBS="$withval $LIBS" +@@ -2902,6 +2902,8 @@ LIBS="$withval $LIBS" PKG_PROG_PKG_CONFIG
package/python3/0004-Adjust-library-header-paths-for-cross-compilation.patch +3 -1
@@ -15,6 +15,8 @@ values, and get correct header/library paths when cross-compiling third-party Python modules. Signed-off-by: Thomas Petazzoni <[email protected]> +[aduskett at gmail.com: Update for python 3.7.0] +Signed-off-by: Adam Duskett <[email protected]> --- Lib/distutils/command/build_ext.py | 5 ++++- Lib/distutils/sysconfig.py | 15 +++++++++++----
@@ -61,7 +63,7 @@ index 2bcd1dd288..422c13fa4f 100644 + BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix) # Path to the base directory of the project. On Windows the binary may - # live in project/PCBuild/win32 or project/PCBuild/amd64. + # live in project/PCbuild/win32 or project/PCbuild/amd64. -- 2.13.5
package/python3/0005-Don-t-look-in-usr-lib-termcap-for-libraries.patch +1 -1
@@ -12,7 +12,7 @@ diff --git a/setup.py b/setup.py index 86643ae8bf..cd00fbdbda 100644 --- a/setup.py +++ b/setup.py -@@ -786,12 +786,9 @@ class PyBuildExt(build_ext): +@@ -850,12 +850,9 @@ class PyBuildExt(build_ext): pass # Issue 7384: Already linked against curses or tinfo. elif curses_library: readline_libs.append(curses_library)
package/python3/0006-Don-t-add-multiarch-paths.patch +1 -1
@@ -20,7 +20,7 @@ diff --git a/setup.py b/setup.py index cd00fbdbda..c956fa08d1 100644 --- a/setup.py +++ b/setup.py -@@ -497,10 +497,10 @@ class PyBuildExt(build_ext): +@@ -547,10 +547,10 @@ class PyBuildExt(build_ext): if not cross_compiling: add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
package/python3/0007-Abort-on-failed-module-build.patch +1 -1
@@ -17,7 +17,7 @@ diff --git a/setup.py b/setup.py index c956fa08d1..b3add2be76 100644 --- a/setup.py +++ b/setup.py -@@ -312,6 +312,7 @@ class PyBuildExt(build_ext): +@@ -358,6 +358,7 @@ class PyBuildExt(build_ext): print("Failed to build these modules:") print_three_column(failed) print()
package/python3/0008-Serial-ioctl-workaround.patch +1 -1
@@ -18,7 +18,7 @@ diff --git a/Modules/termios.c b/Modules/termios.c index b78d33e688..58b0444565 100644 --- a/Modules/termios.c +++ b/Modules/termios.c -@@ -9,7 +9,9 @@ +@@ -15,7 +15,9 @@ #endif #include <termios.h>
package/python3/0010-Misc-python-config.sh.in-ensure-sed-invocations-only.patch +24 -15
@@ -20,41 +20,50 @@ ensuring we only match the beginning of the string. Submitted upstream: http://bugs.python.org/issue22907 Signed-off-by: Peter Korsgaard <[email protected]> +[aduskett at gmail.com: Update for python 3.7.0] +Signed-off-by: Adam Duskett <[email protected]> --- - Misc/python-config.sh.in | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) + Misc/python-config.sh.in | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Misc/python-config.sh.in b/Misc/python-config.sh.in -index 30c6927871..f905a7132f 100644 +index d1d3275..9e259c0 100644 --- a/Misc/python-config.sh.in +++ b/Misc/python-config.sh.in -@@ -29,12 +29,12 @@ prefix_real=$(installed_prefix "$0") +@@ -24,18 +24,19 @@ installed_prefix () + echo $RESULT + } + ++prefix_build="@prefix@" + prefix_real=$(installed_prefix "$0") # Use sed to fix paths from their built-to locations to their installed-to - # locations. --prefix=$(echo "$prefix_build" | sed "s#$prefix_build#$prefix_real#") + # locations. Keep prefix & exec_prefix using their original values in case + # they are referenced in other configure variables, to prevent double + # substitution, issue #22140. +-prefix="@prefix@" +-exec_prefix="@exec_prefix@" +prefix=$(echo "$prefix_build" | sed "s#^$prefix_build#$prefix_real#") - exec_prefix_build="@exec_prefix@" --exec_prefix=$(echo "$exec_prefix_build" | sed "s#$exec_prefix_build#$prefix_real#") --includedir=$(echo "@includedir@" | sed "s#$prefix_build#$prefix_real#") --libdir=$(echo "@libdir@" | sed "s#$prefix_build#$prefix_real#") --CFLAGS=$(echo "@CFLAGS@" | sed "s#$prefix_build#$prefix_real#") +exec_prefix=$(echo "$exec_prefix_build" | sed "s#^$exec_prefix_build#$prefix_real#") + exec_prefix_real=${prefix_real} +-includedir=$(echo "@includedir@" | sed "s#$prefix#$prefix_real#") +-libdir=$(echo "@libdir@" | sed "s#$prefix#$prefix_real#") +-CFLAGS=$(echo "@CFLAGS@" | sed "s#$prefix#$prefix_real#") +includedir=$(echo "@includedir@" | sed "s#^$prefix_build#$prefix_real#") +libdir=$(echo "@libdir@" | sed "s#^$prefix_build#$prefix_real#") +CFLAGS=$(echo "@CFLAGS@" | sed "s#^$prefix_build#$prefix_real#") VERSION="@VERSION@" LIBM="@LIBM@" LIBC="@LIBC@" -@@ -48,7 +48,7 @@ OPT="@OPT@" +@@ -49,7 +50,7 @@ OPT="@OPT@" PY_ENABLE_SHARED="@PY_ENABLE_SHARED@" LDVERSION="@LDVERSION@" - LIBDEST=${prefix}/lib/python${VERSION} --LIBPL=$(echo "@LIBPL@" | sed "s#$prefix_build#$prefix_real#") + LIBDEST=${prefix_real}/lib/python${VERSION} +-LIBPL=$(echo "@LIBPL@" | sed "s#$prefix#$prefix_real#") +LIBPL=$(echo "@LIBPL@" | sed "s#^$prefix_build#$prefix_real#") SO="@EXT_SUFFIX@" PYTHONFRAMEWORK="@PYTHONFRAMEWORK@" INCDIR="-I$includedir/python${VERSION}${ABIFLAGS}" -- -2.13.5 +2.14.3
package/python3/0011-Override-system-locale-and-set-to-default-when-addin.patch +1 -1
@@ -23,7 +23,7 @@ diff --git a/setup.py b/setup.py index b3add2be76..29bfd174d2 100644 --- a/setup.py +++ b/setup.py -@@ -457,7 +457,7 @@ class PyBuildExt(build_ext): +@@ -514,7 +514,7 @@ class PyBuildExt(build_ext): tmpfile = os.path.join(self.build_temp, 'gccpaths') if not os.path.exists(self.build_temp): os.makedirs(self.build_temp)
package/python3/0012-Add-importlib-fix-for-PEP-3147-issue.patch +3 -3
@@ -28,7 +28,7 @@ diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_ext index 9feec50842..3550013d58 100644 --- a/Lib/importlib/_bootstrap_external.py +++ b/Lib/importlib/_bootstrap_external.py -@@ -275,8 +275,6 @@ def cache_from_source(path, debug_override=None, *, optimization=None): +@@ -283,8 +283,6 @@ def cache_from_source(path, debug_override=None, *, optimization=None): a True value is the same as setting 'optimization' to the empty string while a False value is equivalent to setting 'optimization' to '1'.
@@ -37,7 +37,7 @@ index 9feec50842..3550013d58 100644 """ if debug_override is not None: _warnings.warn('the debug_override parameter is deprecated; use ' -@@ -288,10 +286,7 @@ def cache_from_source(path, debug_override=None, *, optimization=None): +@@ -296,10 +294,7 @@ def cache_from_source(path, debug_override=None, *, optimization=None): path = _os.fspath(path) head, tail = _path_split(path) base, sep, rest = tail.rpartition('.')
@@ -49,7 +49,7 @@ index 9feec50842..3550013d58 100644 if optimization is None: if sys.flags.optimize == 0: optimization = '' -@@ -302,40 +297,17 @@ def cache_from_source(path, debug_override=None, *, optimization=None): +@@ -310,40 +305,17 @@ def cache_from_source(path, debug_override=None, *, optimization=None): if not optimization.isalnum(): raise ValueError('{!r} is not alphanumeric'.format(optimization)) almost_filename = '{}.{}{}'.format(almost_filename, _OPT, optimization)
package/python3/0013-Add-an-option-to-disable-installation-of-test-module.patch +13 -10
@@ -10,6 +10,8 @@ Signed-off-by: Thomas Petazzoni <[email protected]> Signed-off-by: Samuel Martin <[email protected]> [ Andrey Smirnov: ported to Python 3.6 ] Signed-off-by: Andrey Smirnov <[email protected]> +[aduskett at gmail.com: Update for python 3.7.0] +Signed-off-by: Adam Duskett <[email protected]> --- Makefile.pre.in | 55 ++++++++++++++++++++++++++++++++++++------------------- configure.ac | 5 +++++
@@ -19,7 +21,7 @@ diff --git a/Makefile.pre.in b/Makefile.pre.in index 4ce917ab8d..4110fff4ac 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1194,8 +1194,28 @@ maninstall: altmaninstall +@@ -1251,8 +1251,28 @@ maninstall: altmaninstall # Install the library XMLLIBSUBDIRS= xml xml/dom xml/etree xml/parsers xml/sax
@@ -50,10 +52,14 @@ index 4ce917ab8d..4110fff4ac 100644 test/audiodata \ test/capath test/data \ test/cjkencodings test/decimaltestdata test/xmltestdata \ -@@ -1229,29 +1249,26 @@ LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \ - test/test_importlib/namespace_pkgs/project3/parent/child \ - test/test_importlib/namespace_pkgs/module_and_namespace_package \ - test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test \ +diff --git a/Makefile.pre.in b/Makefile.pre.in +index 1ff2362..194dbfc 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1326,26 +1326,24 @@ TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \ + test/test_importlib/source \ + test/test_importlib/zipdata01 \ + test/test_importlib/zipdata02 \ - asyncio \ test/test_asyncio \ - collections concurrent concurrent/futures encodings \
@@ -72,13 +78,10 @@ index 4ce917ab8d..4110fff4ac 100644 - ctypes ctypes/test ctypes/macholib \ - idlelib idlelib/Icons idlelib/idle_test \ - distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \ -- importlib test/test_importlib test/test_importlib/builtin \ + ctypes/test \ + idlelib/idle_test \ + distutils/tests \ + test/test_importlib test/test_importlib/builtin \ - test/test_importlib/extension test/test_importlib/frozen \ - test/test_importlib/import_ test/test_importlib/source \ test/test_tools test/test_warnings test/test_warnings/data \ - turtledemo \ - multiprocessing multiprocessing/dummy \
@@ -98,8 +101,8 @@ diff --git a/configure.ac b/configure.ac index d5ee2aedfb..f924937fe1 100644 --- a/configure.ac +++ b/configure.ac -@@ -3112,6 +3112,11 @@ if test "$posix_threads" = "yes"; then - AC_CHECK_FUNCS(pthread_atfork) +@@ -3162,6 +3162,11 @@ if test "$posix_threads" = "yes"; then + AC_CHECK_FUNCS(pthread_getcpuclockid) fi +AC_SUBST(TEST_MODULES)
package/python3/0014-Add-an-option-to-disable-pydoc.patch +9 -7
@@ -10,6 +10,8 @@ Signed-off-by: Thomas Petazzoni <[email protected]> Signed-off-by: Samuel Martin <[email protected]> [ Andrey Smirnov: ported to Python 3.6 ] Signed-off-by: Andrey Smirnov <[email protected]> +[aduskett at gmail.com: Update for python 3.7.0] +Signed-off-by: Adam Duskett <[email protected]> --- Makefile.pre.in | 8 +++++++- configure.ac | 6 ++++++
@@ -20,7 +22,7 @@ diff --git a/Makefile.pre.in b/Makefile.pre.in index 4110fff4ac..badb2af35d 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1164,7 +1164,9 @@ bininstall: altbininstall +@@ -1221,7 +1221,9 @@ bininstall: altbininstall -rm -f $(DESTDIR)$(BINDIR)/idle3 (cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3) -rm -f $(DESTDIR)$(BINDIR)/pydoc3
@@ -30,7 +32,7 @@ index 4110fff4ac..badb2af35d 100644 -rm -f $(DESTDIR)$(BINDIR)/2to3 (cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3) -rm -f $(DESTDIR)$(BINDIR)/pyvenv -@@ -1212,7 +1214,7 @@ LIBSUBDIRS= tkinter site-packages \ +@@ -1269,7 +1271,7 @@ LIBSUBDIRS= tkinter site-packages \ multiprocessing multiprocessing/dummy \ unittest \ venv venv/scripts venv/scripts/common venv/scripts/posix \
@@ -39,7 +41,7 @@ index 4110fff4ac..badb2af35d 100644 TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \ tkinter/test/test_ttk test \ -@@ -1269,6 +1271,10 @@ ifeq (@TEST_MODULES@,yes) +@@ -1344,6 +1346,10 @@ ifeq (@TEST_MODULES@,yes) LIBSUBDIRS += $(TESTSUBDIRS) endif
@@ -54,8 +56,8 @@ diff --git a/configure.ac b/configure.ac index f924937fe1..1621fa1611 100644 --- a/configure.ac +++ b/configure.ac -@@ -3112,6 +3112,12 @@ if test "$posix_threads" = "yes"; then - AC_CHECK_FUNCS(pthread_atfork) +@@ -3162,6 +3162,12 @@ if test "$posix_threads" = "yes"; then + AC_CHECK_FUNCS(pthread_getcpuclockid) fi +AC_SUBST(PYDOC)
@@ -71,7 +73,7 @@ diff --git a/setup.py b/setup.py index 29bfd174d2..94dd337fef 100644 --- a/setup.py +++ b/setup.py -@@ -2281,6 +2281,12 @@ def main(): +@@ -2332,6 +2332,12 @@ def main(): # turn off warnings when deprecated modules are imported import warnings warnings.filterwarnings("ignore",category=DeprecationWarning)
@@ -84,7 +86,7 @@ index 29bfd174d2..94dd337fef 100644 setup(# PyPI Metadata (PEP 301) name = "Python", version = sys.version.split()[0], -@@ -2305,8 +2311,7 @@ def main(): +@@ -2356,8 +2362,7 @@ def main(): # If you change the scripts installed here, you also need to # check the PyBuildScripts command above, and change the links # created by the bininstall target in Makefile.pre.in
package/python3/0015-Add-an-option-to-disable-lib2to3.patch +10 -8
@@ -10,6 +10,8 @@ Signed-off-by: Thomas Petazzoni <[email protected]> Signed-off-by: Samuel Martin <[email protected]> [ Andrey Smirnov: ported to Python 3.6 ] Signed-off-by: Andrey Smirnov <[email protected]> +[aduskett at gmail.com: Update for python 3.7.0] +Signed-off-by: Adam Duskett <[email protected]> --- Makefile.pre.in | 16 ++++++++++++---- configure.ac | 6 ++++++
@@ -20,7 +22,7 @@ diff --git a/Makefile.pre.in b/Makefile.pre.in index badb2af35d..931cc3ed07 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1168,7 +1168,9 @@ ifeq (@PYDOC@,yes) +@@ -1225,7 +1225,9 @@ ifeq (@PYDOC@,yes) (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3) endif -rm -f $(DESTDIR)$(BINDIR)/2to3
@@ -30,7 +32,7 @@ index badb2af35d..931cc3ed07 100644 -rm -f $(DESTDIR)$(BINDIR)/pyvenv (cd $(DESTDIR)$(BINDIR); $(LN) -s pyvenv-$(VERSION) pyvenv) if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \ -@@ -1205,7 +1207,6 @@ LIBSUBDIRS= tkinter site-packages \ +@@ -1262,7 +1264,6 @@ LIBSUBDIRS= tkinter site-packages \ html json http dbm xmlrpc \ sqlite3 \ logging csv wsgiref urllib \
@@ -38,7 +40,7 @@ index badb2af35d..931cc3ed07 100644 ctypes ctypes/macholib \ idlelib idlelib/Icons \ distutils distutils/command $(XMLLIBSUBDIRS) \ -@@ -1255,9 +1256,6 @@ TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \ +@@ -1332,9 +1333,6 @@ TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \ test/test_email test/test_email/data \ test/test_json \ sqlite3/test \
@@ -48,7 +50,7 @@ index badb2af35d..931cc3ed07 100644 ctypes/test \ idlelib/idle_test \ distutils/tests \ -@@ -1267,6 +1265,14 @@ TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \ +@@ -1342,6 +1340,14 @@ TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \ test/test_tools test/test_warnings test/test_warnings/data \ unittest/test unittest/test/testmock
@@ -63,7 +65,7 @@ index badb2af35d..931cc3ed07 100644 ifeq (@TEST_MODULES@,yes) LIBSUBDIRS += $(TESTSUBDIRS) endif -@@ -1366,10 +1372,12 @@ ifeq (@PYC_BUILD@,yes) +@@ -1441,10 +1447,12 @@ ifeq (@PYC_BUILD@,yes) -d $(LIBDEST)/site-packages -f \ -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages endif
@@ -75,12 +77,12 @@ index badb2af35d..931cc3ed07 100644 +endif python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh - # Substitution happens here, as the completely-expanded BINDIR + @ # Substitution happens here, as the completely-expanded BINDIR diff --git a/configure.ac b/configure.ac index 1621fa1611..13b2edf8b7 100644 --- a/configure.ac +++ b/configure.ac -@@ -3124,6 +3124,12 @@ AC_ARG_ENABLE(test-modules, +@@ -3174,6 +3174,12 @@ AC_ARG_ENABLE(test-modules, AS_HELP_STRING([--disable-test-modules], [disable test modules]), [ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ])
@@ -97,7 +99,7 @@ diff --git a/setup.py b/setup.py index 94dd337fef..76429e1326 100644 --- a/setup.py +++ b/setup.py -@@ -2282,10 +2282,11 @@ def main(): +@@ -2333,10 +2333,11 @@ def main(): import warnings warnings.filterwarnings("ignore",category=DeprecationWarning)
package/python3/0016-Add-option-to-disable-the-sqlite3-module.patch +7 -5
@@ -7,6 +7,8 @@ Signed-off-by: Thomas Petazzoni <[email protected]> Signed-off-by: Samuel Martin <[email protected]> [ Andrey Smirnov: ported to Python 3.6 ] Signed-off-by: Andrey Smirnov <[email protected]> +[aduskett at gmail.com: Update for python 3.7.0] +Signed-off-by: Adam Duskett <[email protected]> --- Makefile.pre.in | 7 +++++-- configure.ac | 9 +++++++++
@@ -16,7 +18,7 @@ diff --git a/Makefile.pre.in b/Makefile.pre.in index 931cc3ed07..a1ce0712cd 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1205,7 +1205,6 @@ LIBSUBDIRS= tkinter site-packages \ +@@ -1262,7 +1262,6 @@ LIBSUBDIRS= tkinter site-packages \ email email/mime \ ensurepip ensurepip/_bundled \ html json http dbm xmlrpc \
@@ -24,7 +26,7 @@ index 931cc3ed07..a1ce0712cd 100644 logging csv wsgiref urllib \ ctypes ctypes/macholib \ idlelib idlelib/Icons \ -@@ -1255,7 +1254,6 @@ TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \ +@@ -1332,7 +1331,6 @@ TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \ test/test_asyncio \ test/test_email test/test_email/data \ test/test_json \
@@ -32,7 +34,7 @@ index 931cc3ed07..a1ce0712cd 100644 ctypes/test \ idlelib/idle_test \ distutils/tests \ -@@ -1273,6 +1271,11 @@ TESTSUBDIRS += lib2to3/tests \ +@@ -1348,6 +1346,11 @@ TESTSUBDIRS += lib2to3/tests \ lib2to3/tests/data/fixers/myfixes endif
@@ -48,8 +50,8 @@ diff --git a/configure.ac b/configure.ac index 13b2edf8b7..d7582cfea4 100644 --- a/configure.ac +++ b/configure.ac -@@ -3112,6 +3112,15 @@ if test "$posix_threads" = "yes"; then - AC_CHECK_FUNCS(pthread_atfork) +@@ -3162,6 +3162,15 @@ if test "$posix_threads" = "yes"; then + AC_CHECK_FUNCS(pthread_getcpuclockid) fi +AC_SUBST(SQLITE3)
package/python3/0017-Add-an-option-to-disable-the-tk-module.patch +4 -4
@@ -16,7 +16,7 @@ diff --git a/Makefile.pre.in b/Makefile.pre.in index a1ce0712cd..dc1e917cc3 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1199,7 +1199,7 @@ maninstall: altmaninstall +@@ -1256,7 +1256,7 @@ maninstall: altmaninstall # Install the library XMLLIBSUBDIRS= xml xml/dom xml/etree xml/parsers xml/sax
@@ -25,7 +25,7 @@ index a1ce0712cd..dc1e917cc3 100644 asyncio \ collections concurrent concurrent/futures encodings \ email email/mime \ -@@ -1216,8 +1216,7 @@ LIBSUBDIRS= tkinter site-packages \ +@@ -1273,8 +1273,7 @@ LIBSUBDIRS= tkinter site-packages \ venv venv/scripts venv/scripts/common venv/scripts/posix \ curses
@@ -35,7 +35,7 @@ index a1ce0712cd..dc1e917cc3 100644 test/audiodata \ test/capath test/data \ test/cjkencodings test/decimaltestdata test/xmltestdata \ -@@ -1263,6 +1262,12 @@ TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \ +@@ -1338,6 +1337,12 @@ TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \ test/test_tools test/test_warnings test/test_warnings/data \ unittest/test unittest/test/testmock
@@ -52,7 +52,7 @@ diff --git a/configure.ac b/configure.ac index d7582cfea4..6a56a5b0c1 100644 --- a/configure.ac +++ b/configure.ac -@@ -3121,6 +3121,15 @@ if test "$SQLITE3" = "no" ; then +@@ -3171,6 +3171,15 @@ if test "$SQLITE3" = "no" ; then DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3" fi
package/python3/0018-Add-an-option-to-disable-the-curses-module.patch +3 -3
@@ -16,7 +16,7 @@ diff --git a/Makefile.pre.in b/Makefile.pre.in index dc1e917cc3..6a6bc082cd 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1213,8 +1213,7 @@ LIBSUBDIRS= site-packages \ +@@ -1270,8 +1270,7 @@ LIBSUBDIRS= site-packages \ turtledemo \ multiprocessing multiprocessing/dummy \ unittest \
@@ -26,7 +26,7 @@ index dc1e917cc3..6a6bc082cd 100644 TESTSUBDIRS= test \ test/audiodata \ -@@ -1268,6 +1267,10 @@ TESTSUBDIRS += tkinter/test tkinter/test/test_tkinter \ +@@ -1343,6 +1342,10 @@ TESTSUBDIRS += tkinter/test tkinter/test/test_tkinter \ tkinter/test/test_ttk endif
@@ -41,7 +41,7 @@ diff --git a/configure.ac b/configure.ac index 6a56a5b0c1..5896b39ff9 100644 --- a/configure.ac +++ b/configure.ac -@@ -3130,6 +3130,15 @@ if test "$TK" = "no"; then +@@ -3180,6 +3180,15 @@ if test "$TK" = "no"; then DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter" fi
package/python3/0019-Add-an-option-to-disable-expat.patch +7 -5
@@ -13,6 +13,8 @@ Signed-off-by: Thomas Petazzoni <[email protected]> Signed-off-by: Samuel Martin <[email protected]> [ Andrey Smirnov: ported to Python 3.6 ] Signed-off-by: Andrey Smirnov <[email protected]> +[aduskett at gmail.com: Update for python 3.7.0] +Signed-off-by: Adam Duskett <[email protected]> --- Makefile.pre.in | 6 +++++- configure.ac | 18 +++++++++++++-----
@@ -23,7 +25,7 @@ diff --git a/Makefile.pre.in b/Makefile.pre.in index 6a6bc082cd..dc4b92b6fe 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1208,7 +1208,7 @@ LIBSUBDIRS= site-packages \ +@@ -1265,7 +1265,7 @@ LIBSUBDIRS= site-packages \ logging csv wsgiref urllib \ ctypes ctypes/macholib \ idlelib idlelib/Icons \
@@ -32,7 +34,7 @@ index 6a6bc082cd..dc4b92b6fe 100644 importlib \ turtledemo \ multiprocessing multiprocessing/dummy \ -@@ -1271,6 +1271,10 @@ ifeq (@CURSES@,yes) +@@ -1346,6 +1346,10 @@ ifeq (@CURSES@,yes) LIBSUBDIRS += curses endif
@@ -47,7 +49,7 @@ diff --git a/configure.ac b/configure.ac index 5896b39ff9..6f21482207 100644 --- a/configure.ac +++ b/configure.ac -@@ -2813,13 +2813,21 @@ PKG_PROG_PKG_CONFIG +@@ -2905,13 +2905,21 @@ PKG_PROG_PKG_CONFIG AC_SUBST(DISABLED_EXTENSIONS) # Check for use of the system expat library
@@ -78,7 +80,7 @@ diff --git a/setup.py b/setup.py index 76429e1326..38aa5e605e 100644 --- a/setup.py +++ b/setup.py -@@ -1495,7 +1495,7 @@ class PyBuildExt(build_ext): +@@ -1485,7 +1485,7 @@ class PyBuildExt(build_ext): # # More information on Expat can be found at www.libexpat.org. #
@@ -86,7 +88,7 @@ index 76429e1326..38aa5e605e 100644 + if '--with-expat=system' in sysconfig.get_config_var("CONFIG_ARGS"): expat_inc = [] define_macros = [] - expat_lib = ['expat'] + extra_compile_args = [] -- 2.13.5
package/python3/0020-Add-an-option-to-disable-CJK-codecs.patch +1 -1
@@ -12,7 +12,7 @@ diff --git a/configure.ac b/configure.ac index 6f21482207..c7742faf41 100644 --- a/configure.ac +++ b/configure.ac -@@ -3129,6 +3129,12 @@ if test "$SQLITE3" = "no" ; then +@@ -3179,6 +3179,12 @@ if test "$SQLITE3" = "no" ; then DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3" fi
package/python3/0021-Add-an-option-to-disable-NIS.patch +1 -1
@@ -15,7 +15,7 @@ diff --git a/configure.ac b/configure.ac index c7742faf41..42a871bb09 100644 --- a/configure.ac +++ b/configure.ac -@@ -3135,6 +3135,12 @@ AC_ARG_ENABLE(codecs-cjk, +@@ -3185,6 +3185,12 @@ AC_ARG_ENABLE(codecs-cjk, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk _codecs_iso2022" fi])
package/python3/0022-Add-an-option-to-disable-unicodedata.patch +1 -1
@@ -12,7 +12,7 @@ diff --git a/configure.ac b/configure.ac index 42a871bb09..1d610e132b 100644 --- a/configure.ac +++ b/configure.ac -@@ -3141,6 +3141,12 @@ AC_ARG_ENABLE(nis, +@@ -3191,6 +3191,12 @@ AC_ARG_ENABLE(nis, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis" fi])
package/python3/0023-Add-an-option-to-disable-IDLE.patch +5 -5
@@ -19,7 +19,7 @@ diff --git a/Makefile.pre.in b/Makefile.pre.in index dc4b92b6fe..3e43066d90 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1162,7 +1162,9 @@ bininstall: altbininstall +@@ -1219,7 +1219,9 @@ bininstall: altbininstall -rm -f $(DESTDIR)$(LIBPC)/python3.pc (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python3.pc) -rm -f $(DESTDIR)$(BINDIR)/idle3
@@ -29,7 +29,7 @@ index dc4b92b6fe..3e43066d90 100644 -rm -f $(DESTDIR)$(BINDIR)/pydoc3 ifeq (@PYDOC@,yes) (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3) -@@ -1207,7 +1209,6 @@ LIBSUBDIRS= site-packages \ +@@ -1264,7 +1266,6 @@ LIBSUBDIRS= site-packages \ html json http dbm xmlrpc \ logging csv wsgiref urllib \ ctypes ctypes/macholib \
@@ -37,7 +37,7 @@ index dc4b92b6fe..3e43066d90 100644 distutils distutils/command \ importlib \ turtledemo \ -@@ -1275,6 +1276,10 @@ ifeq (@EXPAT@,yes) +@@ -1350,6 +1351,10 @@ ifeq (@EXPAT@,yes) LIBSUBDIRS += $(XMLLIBSUBDIRS) endif
@@ -52,7 +52,7 @@ diff --git a/configure.ac b/configure.ac index 1d610e132b..2699e7ceb1 100644 --- a/configure.ac +++ b/configure.ac -@@ -3183,6 +3183,12 @@ AC_ARG_ENABLE(lib2to3, +@@ -3233,6 +3233,12 @@ AC_ARG_ENABLE(lib2to3, AS_HELP_STRING([--disable-lib2to3], [disable lib2to3]), [ LIB2TO3="${enableval}" ], [ LIB2TO3=yes ])
@@ -69,7 +69,7 @@ diff --git a/setup.py b/setup.py index 38aa5e605e..d642825c1e 100644 --- a/setup.py +++ b/setup.py -@@ -2282,11 +2282,13 @@ def main(): +@@ -2333,11 +2333,13 @@ def main(): import warnings warnings.filterwarnings("ignore",category=DeprecationWarning)
package/python3/0024-Add-an-option-to-disable-decimal.patch +5 -3
@@ -9,6 +9,8 @@ Python whether we want to use the system libmpdec (already installed), the libmpdec builtin the Python sources, or no libmpdec at all. Signed-off-by: Thomas Petazzoni <[email protected]> +[aduskett at gmail.com: Update for python 3.7.0] +Signed-off-by: Adam Duskett <[email protected]> --- configure.ac | 17 ++++++++++++----- setup.py | 2 +-
@@ -18,8 +20,8 @@ diff --git a/configure.ac b/configure.ac index 2699e7ceb1..e2c3b6f25c 100644 --- a/configure.ac +++ b/configure.ac -@@ -2862,13 +2862,20 @@ AC_SUBST(LIBFFI_INCLUDEDIR) - AC_MSG_RESULT($with_system_ffi) +@@ -2956,13 +2956,20 @@ fi + AC_SUBST(LIBFFI_INCLUDEDIR) # Check for use of the system libmpdec library -AC_MSG_CHECKING(for --with-system-libmpdec)
@@ -48,7 +50,7 @@ diff --git a/setup.py b/setup.py index d642825c1e..5b98255857 100644 --- a/setup.py +++ b/setup.py -@@ -2058,7 +2058,7 @@ class PyBuildExt(build_ext): +@@ -2010,7 +2010,7 @@ class PyBuildExt(build_ext): def _decimal_ext(self): extra_compile_args = [] undef_macros = []
package/python3/0025-Add-an-option-to-disable-the-ossaudiodev-module.patch +1 -1
@@ -12,7 +12,7 @@ diff --git a/configure.ac b/configure.ac index e2c3b6f25c..8e3dded25e 100644 --- a/configure.ac +++ b/configure.ac -@@ -2877,6 +2877,12 @@ else +@@ -2971,6 +2971,12 @@ else fi AC_SUBST(MPDEC)
package/python3/0026-Add-an-option-to-disable-openssl-support.patch +1 -1
@@ -12,7 +12,7 @@ diff --git a/configure.ac b/configure.ac index 8e3dded25e..28bcdabd67 100644 --- a/configure.ac +++ b/configure.ac -@@ -3160,6 +3160,12 @@ AC_ARG_ENABLE(unicodedata, +@@ -3210,6 +3210,12 @@ AC_ARG_ENABLE(unicodedata, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} unicodedata" fi])
package/python3/0027-Add-an-option-to-disable-the-readline-module.patch +1 -1
@@ -12,7 +12,7 @@ diff --git a/configure.ac b/configure.ac index 28bcdabd67..484f6ebaca 100644 --- a/configure.ac +++ b/configure.ac -@@ -3166,6 +3166,12 @@ AC_ARG_ENABLE(openssl, +@@ -3216,6 +3216,12 @@ AC_ARG_ENABLE(openssl, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ssl _ssl _hashlib" fi])
package/python3/0028-Add-options-to-disable-zlib-bzip2-and-xz-modules.patch +1 -1
@@ -12,7 +12,7 @@ diff --git a/configure.ac b/configure.ac index 484f6ebaca..79538df0cf 100644 --- a/configure.ac +++ b/configure.ac -@@ -3172,6 +3172,24 @@ AC_ARG_ENABLE(readline, +@@ -3222,6 +3222,24 @@ AC_ARG_ENABLE(readline, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} readline" fi])
package/python3/0029-python-config.sh-don-t-reassign-prefix.patch +13 -11
@@ -22,32 +22,34 @@ Fixes failures like the following: dbus-python-1.2.4 | NOK | http://autobuild.buildroot.net/results/758858efa97b6273c1b470513f5492258a6d8853 Signed-off-by: Matthew Weber <[email protected]> +[aduskett at gmail.com: Update for python 3.7.0] +Signed-off-by: Adam Duskett <[email protected]> --- - Misc/python-config.sh.in | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) + Misc/python-config.sh.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Misc/python-config.sh.in b/Misc/python-config.sh.in -index f905a71..e06be0f 100644 +index 9e259c0..8b249d9 100644 --- a/Misc/python-config.sh.in +++ b/Misc/python-config.sh.in -@@ -29,7 +29,7 @@ prefix_real=$(installed_prefix "$0") - - # Use sed to fix paths from their built-to locations to their installed-to - # locations. +@@ -31,7 +31,7 @@ prefix_real=$(installed_prefix "$0") + # locations. Keep prefix & exec_prefix using their original values in case + # they are referenced in other configure variables, to prevent double + # substitution, issue #22140. -prefix=$(echo "$prefix_build" | sed "s#^$prefix_build#$prefix_real#") +prefix=$prefix_build - exec_prefix_build="@exec_prefix@" exec_prefix=$(echo "$exec_prefix_build" | sed "s#^$exec_prefix_build#$prefix_real#") + exec_prefix_real=${prefix_real} includedir=$(echo "@includedir@" | sed "s#^$prefix_build#$prefix_real#") -@@ -47,7 +46,7 @@ LINKFORSHARED="@LINKFORSHARED@" +@@ -49,7 +49,7 @@ LINKFORSHARED="@LINKFORSHARED@" OPT="@OPT@" PY_ENABLE_SHARED="@PY_ENABLE_SHARED@" LDVERSION="@LDVERSION@" --LIBDEST=${prefix}/lib/python${VERSION} +-LIBDEST=${prefix_real}/lib/python${VERSION} +LIBDEST=$( echo "${prefix}/lib/python${VERSION}" | sed "s#^$prefix_build#$prefix_real#") LIBPL=$(echo "@LIBPL@" | sed "s#^$prefix_build#$prefix_real#") SO="@EXT_SUFFIX@" PYTHONFRAMEWORK="@PYTHONFRAMEWORK@" -- -1.8.3.1 +2.14.3
package/python3/0030-Fix-cross-compiling-the-uuid-module.patch new file +38 -0
@@ -0,0 +1,38 @@ +From 2e1ee7c65f8ad8ced796cfc5377e93e865e52edf Mon Sep 17 00:00:00 2001 +From: Adam Duskett <[email protected]> +Date: Fri, 20 Jul 2018 10:17:39 -0400 +Subject: [PATCH] Fix cross compiling the uuid module + +Python 3.7 has a new _uuid module, however, the include directory search path +for uuid.h is hardcoded to /usr/include/uuid, which causes an unsafe for +cross-compilation error during compiling if the host pc has uuid headers +installed. + +To fix this, create a new variable called uuid_inc_dirs with the original path +of "/usr/include/uuid", then if the environment variable STAGING_DIR exists, +add the STAGING_DIR to the beginning of the uuid_inc_dirs variable + +Signed-off-by: Adam Duskett <[email protected]> +--- + setup.py | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index 1a7085c..bc73174 100644 +--- a/setup.py ++++ b/setup.py +@@ -1627,7 +1627,10 @@ class PyBuildExt(build_ext): + missing.append('_tkinter') + + # Build the _uuid module if possible +- uuid_incs = find_file("uuid.h", inc_dirs, ["/usr/include/uuid"]) ++ uuid_inc_dirs = "/usr/include/uuid" ++ if "STAGING_DIR" in os.environ: ++ uuid_inc_dirs = os.environ["STAGING_DIR"] + uuid_inc_dirs ++ uuid_incs = find_file("uuid.h", inc_dirs, [uuid_inc_dirs]) + if uuid_incs is not None: + if self.compiler.find_library_file(lib_dirs, 'uuid'): + uuid_libs = ['uuid'] +-- +2.17.1 +
package/python3/0031-fix-building-on-older-distributions.patch new file +38 -0
@@ -0,0 +1,38 @@ +From 77fffa0c5c1757137d5b90b9593968e9102abe99 Mon Sep 17 00:00:00 2001 +From: Adam Duskett <[email protected]> +Date: Thu, 16 Aug 2018 14:52:37 -0700 +Subject: [PATCH] fix building on older distributions + +Python > 3.6.3 calls os.replace in the update_file.py script, during the +regen-importlib phase of the build process. + +According to Doc/whatsnew/3.3.rst line 1631, os.replace acts in the same +way as os.rename, however, it is now cross-platform compatible for Windows. + +Because BuildRoot is guaranteed only to be built in POSIX environment, it is +safe to change os.replace back to os.rename. + +This change fixes building on older systems such as CentOS7, that only come +with python 2. + +Signed-off-by: Adam Duskett <[email protected]> +--- + Tools/scripts/update_file.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Tools/scripts/update_file.py b/Tools/scripts/update_file.py +index 224585c..ef458c0 100644 +--- a/Tools/scripts/update_file.py ++++ b/Tools/scripts/update_file.py +@@ -16,7 +16,7 @@ def main(old_path, new_path): + with open(new_path, 'rb') as f: + new_contents = f.read() + if old_contents != new_contents: +- os.replace(new_path, old_path) ++ os.rename(new_path, old_path) + else: + os.unlink(new_path) + +-- +1.8.3.1 +
package/python3/Config.in +10 -0
@@ -88,6 +88,16 @@ config BR2_PACKAGE_PYTHON3_UNICODEDATA Unicode character database (used by stringprep module) (large). +config BR2_PACKAGE_PYTHON3_UUID + bool "uuid module" + select BR2_PACKAGE_UTIL_LINUX + select BR2_PACKAGE_UTIL_LINUX_LIBUUID + help + This module provides immutable UUID objects (the UUID class) + and the functions uuid1(), uuid3(), uuid4(), uuid5() for + generating version 1, 3, 4, and 5 UUIDs as specified in RFC + 4122. + config BR2_PACKAGE_PYTHON3_SQLITE bool "sqlite module" select BR2_PACKAGE_SQLITE
package/python3/python3.hash +4 -3
@@ -1,4 +1,5 @@ -# From https://www.python.org/downloads/release/python-363/ -md5 b9c2c36c33fb89bda1fefd37ad5af9be Python-3.6.3.tar.xz +# From https://www.python.org/downloads/release/python-370/ +md5 eb8c2a6b1447d50813c02714af4681f3 Python-3.7.0.tar.xz # Locally computed -sha256 cda7d967c9a4bfa52337cdf551bcc5cff026b6ac50a8834e568ce4a794ca81da Python-3.6.3.tar.xz +sha256 0382996d1ee6aafe59763426cf0139ffebe36984474d0ec4126dd1c40a8b3549 Python-3.7.0.tar.xz +sha256 b9a6d9320b8f2693e8d41e496ce56caadacaddcca9be2a64a61749278f425cf2 LICENSE
package/python3/python3.mk +7 -3
@@ -4,8 +4,8 @@ # ################################################################################ -PYTHON3_VERSION_MAJOR = 3.6 -PYTHON3_VERSION = $(PYTHON3_VERSION_MAJOR).3 +PYTHON3_VERSION_MAJOR = 3.7 +PYTHON3_VERSION = $(PYTHON3_VERSION_MAJOR).0 PYTHON3_SOURCE = Python-$(PYTHON3_VERSION).tar.xz PYTHON3_SITE = https://python.org/ftp/python/$(PYTHON3_VERSION) PYTHON3_LICENSE = Python-2.0, others
@@ -47,7 +47,7 @@ HOST_PYTHON3_CONF_ENV += \ PYTHON3_DEPENDENCIES = host-python3 libffi -HOST_PYTHON3_DEPENDENCIES = host-expat host-zlib +HOST_PYTHON3_DEPENDENCIES = host-expat host-zlib host-libffi PYTHON3_INSTALL_STAGING = YES
@@ -101,6 +101,10 @@ ifneq ($(BR2_PACKAGE_PYTHON3_UNICODEDATA),y) PYTHON3_CONF_OPTS += --disable-unicodedata endif +ifeq ($(BR2_PACKAGE_PYTHON3_UUID),y) +PYTHON3_DEPENDENCIES += util-linux +endif + ifeq ($(BR2_PACKAGE_PYTHON3_BZIP2),y) PYTHON3_DEPENDENCIES += bzip2 else
Signature · 1 line
1.8.3.1
PATCH v3 1/1 Python3: Bump to 3.7.0
Hello,
Quoted 40 lines · Adam Duskett
From: Adam Duskett <[email protected]>
Other changes include:
- Refreshing all necessary patches for 3.7.0
- Add a hash for the license file.
- Python no longer has it's own internal libffi, as such, host-libffi is now required to build host-python3, and is added as a dependency.
- A new core module "uuid" is now is added in the Config.in file, and relies on util-linux's uuid library.
- Also, a new patch: 0030-Fix-cross-compiling-the-uuid-module.patch is required to fix compiling the uuid module, because the include directory search path for
uuid.his hardcoded to/usr/include/uuid, which causes an "unsafe for cross-compilation" error during compiling if the host pc has uuid headers installed.To fix this error, a new variable called
uuid_inc_dirswith the original path of "/usr/include/uuid" is added tosetup.py, then if the environment variableSTAGING_DIRexists, theSTAGING_DIRpath is added to the beginning of theuuid_inc_dirsvariable.- Add a new patch: 0031-fix-building-on-older-distributions.patch This patch changes os.replace to os.rename in the
update_file.pyscript to fix building on older Linux distributions that have older versions of python that don't include os.replace.os.rename acts in the same way as os.replace, but is cross-platform compatible. Because Buildroot is guaranteed to be built in a POSIX environment, it is safe to change replace to rename.
Tested on CentOS7 and Fedora28, All test results passed:
br-arm-full [1/6]: OK br-arm-cortex-a9-glibc [2/6]: OK br-arm-cortex-m4-full [3/6]: SKIPPED br-x86-64-musl [4/6]: OK br-arm-full-static [5/6]: SKIPPED
Quoted 4 lines
armv5-ctng-linux-gnueabi [6/6]: OK
6 builds, 2 skipped, 0 build failed, 0 legal-info failedSigned-off-by Adam Duskett <[email protected]>
Ah, I was working on merging your v2 yesterday/today. Still looking at a few things around UUID support. I'll make sure to use your v3 instead.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com
PATCH v3 1/1 Python3: Bump to 3.7.0
In reply to Adam DuskettHello,
Quoted 40 lines · Adam Duskett
From: Adam Duskett <[email protected]>
Other changes include:
- Refreshing all necessary patches for 3.7.0
- Add a hash for the license file.
- Python no longer has it's own internal libffi, as such, host-libffi is now required to build host-python3, and is added as a dependency.
- A new core module "uuid" is now is added in the Config.in file, and relies on util-linux's uuid library.
- Also, a new patch: 0030-Fix-cross-compiling-the-uuid-module.patch is required to fix compiling the uuid module, because the include directory search path for
uuid.his hardcoded to/usr/include/uuid, which causes an "unsafe for cross-compilation" error during compiling if the host pc has uuid headers installed.To fix this error, a new variable called
uuid_inc_dirswith the original path of "/usr/include/uuid" is added tosetup.py, then if the environment variableSTAGING_DIRexists, theSTAGING_DIRpath is added to the beginning of theuuid_inc_dirsvariable.- Add a new patch: 0031-fix-building-on-older-distributions.patch This patch changes os.replace to os.rename in the
update_file.pyscript to fix building on older Linux distributions that have older versions of python that don't include os.replace.os.rename acts in the same way as os.replace, but is cross-platform compatible. Because Buildroot is guaranteed to be built in a POSIX environment, it is safe to change replace to rename.
Tested on CentOS7 and Fedora28, All test results passed:
br-arm-full [1/6]: OK br-arm-cortex-a9-glibc [2/6]: OK br-arm-cortex-m4-full [3/6]: SKIPPED br-x86-64-musl [4/6]: OK br-arm-full-static [5/6]: SKIPPED
Quoted 8 lines
armv5-ctng-linux-gnueabi [6/6]: OK
6 builds, 2 skipped, 0 build failed, 0 legal-info failedSigned-off-by Adam Duskett <[email protected]>---
Changes v1 -> v2:
- Fixed patch name.
- Removed unnecessary SOB lines in some of the updated patches.
So, I have applied to next (in fact your v2, to which I have re-added the 0031-fix-building-on-older-distributions.patch patch. However, I did a number of additional changes:
- I dropped PYTHON3_LIBTOOL_PATCH = NO. This was only needed due to the bundled libffi code, and since there is no more bundled libffi, disabling the libtool patching is no longer needed.
- I changed your patch fixing the cross-compilation of the uuid module. STAGING_DIR is a Buildroot specific environment variable, we prefer to not reference it in the build system of package. Instead, I've used the same solution as the one that was used by setup.py for the NIS detection. Check the patch for details.
- For the UUID module, there was still a problem: even if BR2_PACKAGE_PYTHON3_UUID was disabled, if the UUID library was available in STAGING_DIR, Python would build the UUID module. This is not expected as BR2_PACKAGE_PYTHON3_UUID is disabled. I have added a patch that adds a --enable/--disable option for UUID, like we do for many other Python modules.
Thanks for this version bump!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com
PATCH v3 1/1 Python3: Bump to 3.7.0
Thomas / Adam,
Quoted 67 lines · Thomas Petazzoni
Hello,
Quoted 40 lines · Adam Duskett
From: Adam Duskett <[email protected]>
Other changes include:
- Refreshing all necessary patches for 3.7.0
- Add a hash for the license file.
- Python no longer has it's own internal libffi, as such, host-libffi is now required to build host-python3, and is added as a dependency.
- A new core module "uuid" is now is added in the Config.in file, and relies on util-linux's uuid library.
- Also, a new patch: 0030-Fix-cross-compiling-the-uuid-module.patch is required to fix compiling the uuid module, because the include directory search path for
uuid.his hardcoded to/usr/include/uuid, which causes an "unsafe for cross-compilation" error during compiling if the host pc has uuid headers installed.To fix this error, a new variable called
uuid_inc_dirswith the original path of "/usr/include/uuid" is added tosetup.py, then if the environment variableSTAGING_DIRexists, theSTAGING_DIRpath is added to the beginning of theuuid_inc_dirsvariable.- Add a new patch: 0031-fix-building-on-older-distributions.patch This patch changes os.replace to os.rename in the
update_file.pyscript to fix building on older Linux distributions that have older versions of python that don't include os.replace.os.rename acts in the same way as os.replace, but is cross-platform compatible. Because Buildroot is guaranteed to be built in a POSIX environment, it is safe to change replace to rename.
Tested on CentOS7 and Fedora28, All test results passed:
br-arm-full [1/6]: OK br-arm-cortex-a9-glibc [2/6]: OK br-arm-cortex-m4-full [3/6]: SKIPPED br-x86-64-musl [4/6]: OK br-arm-full-static [5/6]: SKIPPEDQuoted 8 lines
armv5-ctng-linux-gnueabi [6/6]: OK
6 builds, 2 skipped, 0 build failed, 0 legal-info failedSigned-off-by Adam Duskett <[email protected]>---
Changes v1 -> v2:
- Fixed patch name.
- Removed unnecessary SOB lines in some of the updated patches.So, I have applied to next (in fact your v2, to which I have re-added the 0031-fix-building-on-older-distributions.patch patch. However, I did a number of additional changes:
- I dropped
PYTHON3_LIBTOOL_PATCH= NO. This was only needed due to the bundled libffi code, and since there is no more bundled libffi, disabling the libtool patching is no longer needed.- I changed your patch fixing the cross-compilation of the uuid module.
STAGING_DIRis a Buildroot specific environment variable, we prefer to not reference it in the build system of package. Instead, I've used the same solution as the one that was used bysetup.pyfor the NIS detection. Check the patch for details.
Quoted 7 lines
- For the UUID module, there was still a problem: even if
BR2_PACKAGE_PYTHON3_UUIDwas disabled, if the UUID library was available inSTAGING_DIR, Python would build the UUID module. This is not expected asBR2_PACKAGE_PYTHON3_UUIDis disabled. I have added a patch that adds a --enable/--disable option for UUID, like we do for many other Python modules.
Related to the current util-linux dependency issue, would there be any reason to not let UUID support always be enabled? Since the standard library is providing the implementation as a fall back.
I tested the following after removing the UUID kconfig and makefile conditions.
- with util-linux and python defaulting to uuid enabled (no build failure and python uuid1() stilll works)
- without util-linux and python defaulting to uuid enabled (no build failure and python uuid1() stilll works)
In both cases, I've verified the ctypes check is loading libc.
Should it be one patch to remove the kconfig option, 0031-Add-an-option-to-disable-uuid-module.patch and .mk updates?
Matt
PATCH v3 1/1 Python3: Bump to 3.7.0
In reply to Adam DuskettHello,
Quoted 1 line · Adam Duskett
From: Adam Duskett <[email protected]>
This version bump is breaking host-python-vcversioner:
http://autobuild.buildroot.net/?reason=host-python-vcversioner%
Could you have a look ?
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com
PATCH v3 1/1 Python3: Bump to 3.7.0
Hello,
Quoted 8 lines · Thomas Petazzoni
Quoted 1 line · Adam Duskett
From: Adam Duskett <[email protected]>
This version bump is breaking host-python-vcversioner:
http://autobuild.buildroot.net/?reason=host-python-vcversioner%
Could you have a look ?
It is also breaking:
- kmod
http://autobuild.buildroot.net/results/591/5914d32f7a11faf0148eceab7ed852f67357b0b5/build-end.log
- host-meson
http://autobuild.buildroot.net/results/99e/99eb91573e74a39d395212f2c470ce55d0412ec0/build-end.log
The issues don't seem to be that trivial. Unless we fix them quickly, I'm tempted to revert the bump to 3.7.0 until those issues are resolved, as we are going to see a lot of autobuilder failures otherwise.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com
A message that is not in the archive (sent off-list or not yet received): SN6PR14MB21263CD05F33E8BEAAFC5A11C7330@SN6PR14MB2126.namprd14.prod.outlook.com
A message that is not in the archive (sent off-list or not yet received): SN6PR14MB21260D8517E2E6E173EE7582C7330@SN6PR14MB2126.namprd14.prod.outlook.com
PATCH v3 1/1 Python3: Bump to 3.7.0
Hello,
Quoted 4 lines · Adam Duskett
I will investigate further tomorrow, however it seems that error can crop up if the tarball has pyc files in it. If you could check to see if vcversioner is bundled with pyc files, and if so remove them before building; that may solve the issue.
Already checked, the vcversioner tarball does not have .pyc files.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com
PATCH v3 1/1 Python3: Bump to 3.7.0
In reply to Adam DuskettHello Adam,
Quoted 5 lines · Adam Duskett
From: Adam Duskett <[email protected]>
Other changes include:
- Refreshing all necessary patches for 3.7.0
We have more Python 3.7.0 issues:
python-lxml-4.0.0
http://autobuild.buildroot.net/results/d8e/d8e3a9aae0e84fb1b3b8093986ec3a4ce7ca0663/build-end.log
python-pyyaml-3.12
http://autobuild.buildroot.net/results/e71/e715a7dc8b6856b4aba0b9b4568d61420c52a5c8/build-end.log
Could you have a look ?
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com