![Adam Duskett](/assets/img/avatar_default.png)
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. - Drop PYTHON3_LIBTOOL_PATCH = NO, since there is no longer any internal libffi copy that was causing the libtool patching process to fail. - 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. - 0031-Add-an-option-to-disable-uuid-module.patch is added to allow disabling the Python3 UUID module, so that when BR2_PACKAGE_PYTHON3_UUID is disabled by the UUID library is present, the uuid Python module is not built, as expected. - 0032-fix-building-on-older-distributions.patch is added to change os.replace by 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 CentOS6 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 armv5-ctng-linux-gnueabi [6/6]: OK 6 builds, 2 skipped, 0 build failed, 0 legal-info failed Signed-off-by: Adam Duskett <aduskett@gmail.com> [Thomas: - remove PYTHON3_LIBTOOL_PATCH = NO - improve the solution in patch 0030-Fix-cross-compiling-the-uuid-module - add patch 0031-Add-an-option-to-disable-uuid-module] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
117 lines
4.1 KiB
Diff
117 lines
4.1 KiB
Diff
From c2d279b4a19de7a32e8a73e320423f699d408380 Mon Sep 17 00:00:00 2001
|
|
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
Date: Wed, 22 Feb 2017 17:15:31 -0800
|
|
Subject: [PATCH] Add an option to disable lib2to3
|
|
|
|
lib2to3 is a library to convert Python 2.x code to Python 3.x. As
|
|
such, it is probably not very useful on embedded system targets.
|
|
|
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
|
|
[ Andrey Smirnov: ported to Python 3.6 ]
|
|
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
|
|
---
|
|
Makefile.pre.in | 16 ++++++++++++----
|
|
configure.ac | 6 ++++++
|
|
setup.py | 5 +++--
|
|
3 files changed, 21 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
|
index badb2af35d..931cc3ed07 100644
|
|
--- a/Makefile.pre.in
|
|
+++ b/Makefile.pre.in
|
|
@@ -1225,7 +1225,9 @@ ifeq (@PYDOC@,yes)
|
|
(cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3)
|
|
endif
|
|
-rm -f $(DESTDIR)$(BINDIR)/2to3
|
|
+ifeq (@LIB2TO3@,yes)
|
|
(cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3)
|
|
+endif
|
|
-rm -f $(DESTDIR)$(BINDIR)/pyvenv
|
|
(cd $(DESTDIR)$(BINDIR); $(LN) -s pyvenv-$(VERSION) pyvenv)
|
|
if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \
|
|
@@ -1262,7 +1264,6 @@ LIBSUBDIRS= tkinter site-packages \
|
|
html json http dbm xmlrpc \
|
|
sqlite3 \
|
|
logging csv wsgiref urllib \
|
|
- lib2to3 lib2to3/fixes lib2to3/pgen2 \
|
|
ctypes ctypes/macholib \
|
|
idlelib idlelib/Icons \
|
|
distutils distutils/command $(XMLLIBSUBDIRS) \
|
|
@@ -1332,9 +1333,6 @@ TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \
|
|
test/test_email test/test_email/data \
|
|
test/test_json \
|
|
sqlite3/test \
|
|
- lib2to3/tests \
|
|
- lib2to3/tests/data lib2to3/tests/data/fixers \
|
|
- lib2to3/tests/data/fixers/myfixes \
|
|
ctypes/test \
|
|
idlelib/idle_test \
|
|
distutils/tests \
|
|
@@ -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
|
|
|
|
+ifeq (@LIB2TO3@,yes)
|
|
+LIBSUBDIRS += lib2to3 lib2to3/fixes lib2to3/pgen2
|
|
+TESTSUBDIRS += lib2to3/tests \
|
|
+ lib2to3/tests/data \
|
|
+ lib2to3/tests/data/fixers \
|
|
+ lib2to3/tests/data/fixers/myfixes
|
|
+endif
|
|
+
|
|
ifeq (@TEST_MODULES@,yes)
|
|
LIBSUBDIRS += $(TESTSUBDIRS)
|
|
endif
|
|
@@ -1441,10 +1447,12 @@ ifeq (@PYC_BUILD@,yes)
|
|
-d $(LIBDEST)/site-packages -f \
|
|
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
|
|
endif
|
|
+ifeq (@LIB2TO3@,yes)
|
|
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
|
$(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
|
|
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
|
$(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
|
|
+endif
|
|
|
|
python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh
|
|
@ # 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
|
|
@@ -3174,6 +3174,12 @@ AC_ARG_ENABLE(test-modules,
|
|
AS_HELP_STRING([--disable-test-modules], [disable test modules]),
|
|
[ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ])
|
|
|
|
+AC_SUBST(LIB2TO3)
|
|
+
|
|
+AC_ARG_ENABLE(lib2to3,
|
|
+ AS_HELP_STRING([--disable-lib2to3], [disable lib2to3]),
|
|
+ [ LIB2TO3="${enableval}" ], [ LIB2TO3=yes ])
|
|
+
|
|
# Check for enable-ipv6
|
|
AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
|
|
AC_MSG_CHECKING([if --enable-ipv6 is specified])
|
|
diff --git a/setup.py b/setup.py
|
|
index 94dd337fef..76429e1326 100644
|
|
--- a/setup.py
|
|
+++ b/setup.py
|
|
@@ -2333,10 +2333,11 @@ def main():
|
|
import warnings
|
|
warnings.filterwarnings("ignore",category=DeprecationWarning)
|
|
|
|
- scripts = ['Tools/scripts/idle3', 'Tools/scripts/2to3',
|
|
- 'Lib/smtpd.py']
|
|
+ scripts = ['Tools/scripts/idle3', 'Lib/smtpd.py']
|
|
if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"):
|
|
scripts += [ 'Tools/scripts/pydoc3' ]
|
|
+ if not '--disable-lib2to3' in sysconfig.get_config_var("CONFIG_ARGS"):
|
|
+ scripts += [ 'Tools/scripts/2to3' ]
|
|
|
|
setup(# PyPI Metadata (PEP 301)
|
|
name = "Python",
|
|
--
|
|
2.13.5
|
|
|