update buildroot to 2017.02.11
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
From d6093bad6c700312ff7ff4a7bb15c815dda6f46b Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:28:34 +0100
|
||||
Subject: [PATCH] setup.py: do not add invalid header locations
|
||||
|
||||
This piece of code incorrectly adds /usr/include to
|
||||
self.compiler.include_dirs, and results in the following invalid
|
||||
compilation line:
|
||||
|
||||
/home/thomas/projets/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-gcc
|
||||
-fPIC -Wno-unused-result -Werror=declaration-after-statement -DNDEBUG -g
|
||||
-O3 -Wall -Wstrict-prototypes -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
|
||||
-D_FILE_OFFSET_BITS=64 -pipe -Os
|
||||
-I./Include -I/usr/include -I. -IInclude
|
||||
-I/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include
|
||||
-I/home/thomas/projets/buildroot/output/build/python3-3.4.0b1/Include
|
||||
-I/home/thomas/projets/buildroot/output/build/python3-3.4.0b1
|
||||
-c /home/thomas/projets/buildroot/output/build/python3-3.4.0b1/Modules/_struct.c
|
||||
-o build/temp.linux-arm-3.4/home/thomas/projets/buildroot/output/build/python3-3.4.0b1/Modules/_struct.o
|
||||
cc1: warning: include location "/usr/include" is unsafe for cross-compilation [-Wpoison-system-directories]
|
||||
|
||||
The -I/usr/include is wrong when cross compiling, so we disable adding
|
||||
INCLUDEDIR and LIBDIR from the host when cross compiling.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
setup.py | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
index da67731..dbd2a3c 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -511,7 +511,8 @@ class PyBuildExt(build_ext):
|
||||
add_dir_to_list(dir_list, directory)
|
||||
|
||||
if os.path.normpath(sys.base_prefix) != '/usr' \
|
||||
- and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
|
||||
+ and not sysconfig.get_config_var('PYTHONFRAMEWORK') \
|
||||
+ and not cross_compiling:
|
||||
# OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework
|
||||
# (PYTHONFRAMEWORK is set) to avoid # linking problems when
|
||||
# building a framework with different architectures than
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
From 4ac038d30ec71b3f223ac7c91613856dd82b6347 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:29:04 +0100
|
||||
Subject: [PATCH] Change the install location of _sysconfigdata.py
|
||||
|
||||
The _sysconfigdata.py module contains definitions that are needed when
|
||||
building Python modules. In cross-compilation mode, when building
|
||||
Python extensions for the target, we need to use the _sysconfigdata.py
|
||||
of the target Python while executing the host Python.
|
||||
|
||||
However until now, the _sysconfigdata.py module was installed in
|
||||
build/lib.<arch>-<version> directory, together with a number of
|
||||
architecture-specific shared objects, which cannot be used with the
|
||||
host Python.
|
||||
|
||||
To solve this problem, this patch moves _sysconfigdata.py to a
|
||||
separate location, build/sysconfigdata.<arch>-<version>/, and only
|
||||
this directory gets added to the PYTHONPATH of the host Python
|
||||
interpreter when building Python modules for the target.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
Makefile.pre.in | 12 ++++++++++--
|
||||
configure.ac | 2 +-
|
||||
2 files changed, 11 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||
index 823def3..4d2a061 100644
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -585,6 +585,9 @@ pybuilddir.txt: $(BUILDPYTHON)
|
||||
rm -f ./pybuilddir.txt ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
+ echo `cat pybuilddir.txt`/sysconfigdata > pysysconfigdatadir.txt
|
||||
+ mkdir -p `cat pysysconfigdatadir.txt`
|
||||
+ cp `cat pybuilddir.txt`/_sysconfigdata.py `cat pysysconfigdatadir.txt`
|
||||
|
||||
# Build the shared modules
|
||||
# Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for
|
||||
@@ -1235,7 +1238,7 @@ libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
|
||||
else true; \
|
||||
fi; \
|
||||
done
|
||||
- @for i in $(srcdir)/Lib/*.py `cat pybuilddir.txt`/_sysconfigdata.py; \
|
||||
+ @for i in $(srcdir)/Lib/*.py ; \
|
||||
do \
|
||||
if test -x $$i; then \
|
||||
$(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \
|
||||
@@ -1245,6 +1248,11 @@ libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
|
||||
echo $(INSTALL_DATA) $$i $(LIBDEST); \
|
||||
fi; \
|
||||
done
|
||||
+ $(INSTALL_DATA) `cat pysysconfigdatadir.txt`/_sysconfigdata.py \
|
||||
+ $(DESTDIR)$(LIBDEST)
|
||||
+ mkdir -p $(DESTDIR)$(LIBDEST)/sysconfigdata
|
||||
+ $(INSTALL_DATA) `cat pysysconfigdatadir.txt`/_sysconfigdata.py \
|
||||
+ $(DESTDIR)$(LIBDEST)/sysconfigdata
|
||||
@for d in $(LIBSUBDIRS); \
|
||||
do \
|
||||
a=$(srcdir)/Lib/$$d; \
|
||||
@@ -1580,7 +1588,7 @@ clean: pycremoval
|
||||
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
|
||||
- -rm -f pybuilddir.txt
|
||||
+ -rm -f pybuilddir.txt pysysconfigdatadir.txt
|
||||
-rm -f Lib/lib2to3/*Grammar*.pickle
|
||||
-rm -f Programs/_testembed Programs/_freeze_importlib
|
||||
-rm -rf build
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 694293e..76b70a0 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -70,7 +70,7 @@ if test "$cross_compiling" = yes; then
|
||||
AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found])
|
||||
fi
|
||||
AC_MSG_RESULT($interp)
|
||||
- PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp
|
||||
+ PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pysysconfigdatadir.txt && echo $(abs_builddir)/`cat pysysconfigdatadir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp
|
||||
fi
|
||||
elif test "$cross_compiling" = maybe; then
|
||||
AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH])
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
From 28f81597314ea3ed03935b519453a55cf6c3c20d Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:29:35 +0100
|
||||
Subject: [PATCH] Make the build of pyc files conditional
|
||||
|
||||
This commit adds a new configure option --disable-pyc-build to disable
|
||||
the compilation of pyc.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
Makefile.pre.in | 2 ++
|
||||
configure.ac | 6 ++++++
|
||||
2 files changed, 8 insertions(+)
|
||||
|
||||
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||
index 4d2a061..272f312 100644
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -1283,6 +1283,7 @@ libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
|
||||
$(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
|
||||
$(DESTDIR)$(LIBDEST)/distutils/tests ; \
|
||||
fi
|
||||
+ifeq (@PYC_BUILD@,yes)
|
||||
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||
$(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||
-d $(LIBDEST) -f \
|
||||
@@ -1310,6 +1311,7 @@ libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
|
||||
$(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||
-d $(LIBDEST)/site-packages -f \
|
||||
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
|
||||
+endif
|
||||
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||
$(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
|
||||
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 76b70a0..66d4642 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1056,6 +1056,12 @@ fi
|
||||
|
||||
AC_MSG_CHECKING(LDLIBRARY)
|
||||
|
||||
+AC_SUBST(PYC_BUILD)
|
||||
+
|
||||
+AC_ARG_ENABLE(pyc-build,
|
||||
+ AS_HELP_STRING([--disable-pyc-build], [disable build of pyc files]),
|
||||
+ [ PYC_BUILD="${enableval}" ], [ PYC_BUILD=yes ])
|
||||
+
|
||||
# MacOSX framework builds need more magic. LDLIBRARY is the dynamic
|
||||
# library that we build, but we do not want to link against it (we
|
||||
# will find it with a -framework option). For this reason there is an
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
From 093caf46b7a742ee2f7bcf617a915ac1653aa8ac Mon Sep 17 00:00:00 2001
|
||||
From: Vanya Sergeev <vsergeev@gmail.com>
|
||||
Date: Wed, 23 Dec 2015 11:30:33 +0100
|
||||
Subject: [PATCH] Disable buggy_getaddrinfo configure test when cross-compiling
|
||||
with IPv6 support
|
||||
|
||||
Signed-off-by: Vanya Sergeev <vsergeev@gmail.com>
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 66d4642..c492594 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3662,7 +3662,7 @@ fi
|
||||
|
||||
AC_MSG_RESULT($ac_cv_buggy_getaddrinfo)
|
||||
|
||||
-if test $have_getaddrinfo = no || test "$ac_cv_buggy_getaddrinfo" = yes
|
||||
+if test $have_getaddrinfo = no || test "$cross_compiling" != "yes" -a "$ac_cv_buggy_getaddrinfo" = yes
|
||||
then
|
||||
if test $ipv6 = yes
|
||||
then
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
From 3a9f4aa255909ed152883eee787313efd20dbc58 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:31:08 +0100
|
||||
Subject: [PATCH] Add infrastructure to disable the build of certain extensions
|
||||
|
||||
Some of the extensions part of the Python core have dependencies on
|
||||
external libraries (sqlite, tk, etc.) or are relatively big and not
|
||||
necessarly always useful (CJK codecs for example). By extensions, we
|
||||
mean part of Python modules that are written in C and therefore
|
||||
compiled to binary code.
|
||||
|
||||
Therefore, we introduce a small infrastructure that allows to disable
|
||||
some of those extensions. This can be done inside the configure.ac by
|
||||
adding values to the DISABLED_EXTENSIONS variable (which is a
|
||||
word-separated list of extensions).
|
||||
|
||||
The implementation works as follow :
|
||||
|
||||
* configure.ac defines a DISABLED_EXTENSIONS variable, which is
|
||||
substituted (so that when Makefile.pre is generated from
|
||||
Makefile.pre.in, the value of the variable is substituted). For
|
||||
now, this DISABLED_EXTENSIONS variable is empty, later patches will
|
||||
use it.
|
||||
|
||||
* Makefile.pre.in passes the DISABLED_EXTENSIONS value down to the
|
||||
variables passed in the environment when calling the setup.py
|
||||
script that actually builds and installs those extensions.
|
||||
|
||||
* setup.py is modified so that the existing "disabled_module_list" is
|
||||
filled with those pre-disabled extensions listed in
|
||||
DISABLED_EXTENSIONS.
|
||||
|
||||
Patch ported to python2.7 by Maxime Ripard <ripard@archos.com>, and
|
||||
then extended by Thomas Petazzoni
|
||||
<thomas.petazzoni@free-electrons.com>.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
Makefile.pre.in | 6 +++++-
|
||||
configure.ac | 2 ++
|
||||
setup.py | 5 ++++-
|
||||
3 files changed, 11 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||
index 272f312..9420860 100644
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -182,6 +182,8 @@ FILEMODE= 644
|
||||
# configure script arguments
|
||||
CONFIG_ARGS= @CONFIG_ARGS@
|
||||
|
||||
+# disabled extensions
|
||||
+DISABLED_EXTENSIONS= @DISABLED_EXTENSIONS@
|
||||
|
||||
# Subdirectories with code
|
||||
SRCDIRS= @SRCDIRS@
|
||||
@@ -600,6 +602,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt
|
||||
esac; \
|
||||
$(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
|
||||
|
||||
# Build static library
|
||||
@@ -1425,7 +1428,8 @@ libainstall: all python-config
|
||||
# Install the dynamically loadable modules
|
||||
# This goes into $(exec_prefix)
|
||||
sharedinstall: sharedmods
|
||||
- $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
|
||||
+ $(RUNSHARED) DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \
|
||||
+ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
|
||||
--prefix=$(prefix) \
|
||||
--install-scripts=$(BINDIR) \
|
||||
--install-platlib=$(DESTSHARED) \
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index c492594..bfb599e 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2588,6 +2588,8 @@ LIBS="$withval $LIBS"
|
||||
|
||||
PKG_PROG_PKG_CONFIG
|
||||
|
||||
+AC_SUBST(DISABLED_EXTENSIONS)
|
||||
+
|
||||
# Check for use of the system expat library
|
||||
AC_MSG_CHECKING(for --with-system-expat)
|
||||
AC_ARG_WITH(system_expat,
|
||||
diff --git a/setup.py b/setup.py
|
||||
index dbd2a3c..1ebfa50 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -44,7 +44,10 @@ host_platform = get_platform()
|
||||
COMPILED_WITH_PYDEBUG = ('--with-pydebug' in sysconfig.get_config_var("CONFIG_ARGS"))
|
||||
|
||||
# This global variable is used to hold the list of modules to be disabled.
|
||||
-disabled_module_list = []
|
||||
+try:
|
||||
+ disabled_module_list = sysconfig.get_config_var("DISABLED_EXTENSIONS").split(" ")
|
||||
+except KeyError:
|
||||
+ disabled_module_list = list()
|
||||
|
||||
def add_dir_to_list(dirlist, dir):
|
||||
"""Add the directory 'dir' to the list 'dirlist' (after any relative
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
From 7c560d917ee0e536c76fac275d1cb0b6136269ab Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:32:23 +0100
|
||||
Subject: [PATCH] distutils/sysconfig: use sysconfigdata
|
||||
|
||||
In order to make the use of sysconfig cross-compilation compatible,
|
||||
use _sysconfigdata.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
Lib/distutils/sysconfig.py | 37 ++++---------------------------------
|
||||
1 file changed, 4 insertions(+), 33 deletions(-)
|
||||
|
||||
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
|
||||
index 573724d..721edec 100644
|
||||
--- a/Lib/distutils/sysconfig.py
|
||||
+++ b/Lib/distutils/sysconfig.py
|
||||
@@ -414,40 +414,11 @@ def expand_makefile_vars(s, vars):
|
||||
_config_vars = None
|
||||
|
||||
def _init_posix():
|
||||
- """Initialize the module as appropriate for POSIX systems."""
|
||||
- g = {}
|
||||
- # load the installed Makefile:
|
||||
- try:
|
||||
- filename = get_makefile_filename()
|
||||
- parse_makefile(filename, g)
|
||||
- except OSError as msg:
|
||||
- my_msg = "invalid Python installation: unable to open %s" % filename
|
||||
- if hasattr(msg, "strerror"):
|
||||
- my_msg = my_msg + " (%s)" % msg.strerror
|
||||
-
|
||||
- raise DistutilsPlatformError(my_msg)
|
||||
-
|
||||
- # load the installed pyconfig.h:
|
||||
- try:
|
||||
- filename = get_config_h_filename()
|
||||
- with open(filename) as file:
|
||||
- parse_config_h(file, g)
|
||||
- except OSError as msg:
|
||||
- my_msg = "invalid Python installation: unable to open %s" % filename
|
||||
- if hasattr(msg, "strerror"):
|
||||
- my_msg = my_msg + " (%s)" % msg.strerror
|
||||
-
|
||||
- raise DistutilsPlatformError(my_msg)
|
||||
-
|
||||
- # On AIX, there are wrong paths to the linker scripts in the Makefile
|
||||
- # -- these paths are relative to the Python source, but when installed
|
||||
- # the scripts are in another directory.
|
||||
- if python_build:
|
||||
- g['LDSHARED'] = g['BLDSHARED']
|
||||
-
|
||||
+ # _sysconfigdata is generated at build time, see the sysconfig module
|
||||
+ from _sysconfigdata import build_time_vars
|
||||
global _config_vars
|
||||
- _config_vars = g
|
||||
-
|
||||
+ _config_vars = {}
|
||||
+ _config_vars.update(build_time_vars)
|
||||
|
||||
def _init_nt():
|
||||
"""Initialize the module as appropriate for NT"""
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
From e634929f76a45f5b683dc19bc01efed2ab83e19e Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:33:14 +0100
|
||||
Subject: [PATCH] Adjust library/header paths for cross-compilation
|
||||
|
||||
When cross-compiling third-party extensions, the get_python_inc() or
|
||||
get_python_lib() can be called, to return the path to headers or
|
||||
libraries. However, they use the sys.prefix of the host Python, which
|
||||
returns incorrect paths when cross-compiling (paths pointing to host
|
||||
headers and libraries).
|
||||
|
||||
In order to fix this, we introduce the _python_sysroot, _python_prefix
|
||||
and _python_exec_prefix variables, that allow to override these
|
||||
values, and get correct header/library paths when cross-compiling
|
||||
third-party Python modules.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
Lib/distutils/command/build_ext.py | 5 ++++-
|
||||
Lib/distutils/sysconfig.py | 15 +++++++++++----
|
||||
2 files changed, 15 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py
|
||||
index d4cb11e..e7a0ba9 100644
|
||||
--- a/Lib/distutils/command/build_ext.py
|
||||
+++ b/Lib/distutils/command/build_ext.py
|
||||
@@ -232,7 +232,10 @@ class build_ext(Command):
|
||||
if (sysconfig.get_config_var('Py_ENABLE_SHARED')):
|
||||
if not sysconfig.python_build:
|
||||
# building third party extensions
|
||||
- self.library_dirs.append(sysconfig.get_config_var('LIBDIR'))
|
||||
+ libdir = sysconfig.get_config_var('LIBDIR')
|
||||
+ if "_python_sysroot" in os.environ:
|
||||
+ libdir = os.environ.get("_python_sysroot") + libdir
|
||||
+ self.library_dirs.append(libdir)
|
||||
else:
|
||||
# building python standard extensions
|
||||
self.library_dirs.append('.')
|
||||
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
|
||||
index 721edec..d20e2d8 100644
|
||||
--- a/Lib/distutils/sysconfig.py
|
||||
+++ b/Lib/distutils/sysconfig.py
|
||||
@@ -17,10 +17,17 @@ import sys
|
||||
from .errors import DistutilsPlatformError
|
||||
|
||||
# These are needed in a couple of spots, so just compute them once.
|
||||
-PREFIX = os.path.normpath(sys.prefix)
|
||||
-EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
|
||||
-BASE_PREFIX = os.path.normpath(sys.base_prefix)
|
||||
-BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix)
|
||||
+if "_python_sysroot" in os.environ:
|
||||
+ _sysroot=os.environ.get('_python_sysroot')
|
||||
+ PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_prefix'))
|
||||
+ EXEC_PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_exec_prefix'))
|
||||
+ BASE_PREFIX = PREFIX
|
||||
+ BASE_EXEC_PREFIX = EXEC_PREFIX
|
||||
+else:
|
||||
+ PREFIX = os.path.normpath(sys.prefix)
|
||||
+ EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
|
||||
+ BASE_PREFIX = os.path.normpath(sys.base_prefix)
|
||||
+ 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.
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
From d7c568632f7cb83346096ea114a06f89a0b488d6 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:36:00 +0100
|
||||
Subject: [PATCH] Don't look in /usr/lib/termcap for libraries
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
setup.py | 5 +----
|
||||
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 1ebfa50..24a7153 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -753,12 +753,9 @@ class PyBuildExt(build_ext):
|
||||
pass # Issue 7384: Already linked against curses or tinfo.
|
||||
elif curses_library:
|
||||
readline_libs.append(curses_library)
|
||||
- elif self.compiler.find_library_file(lib_dirs +
|
||||
- ['/usr/lib/termcap'],
|
||||
- 'termcap'):
|
||||
+ elif self.compiler.find_library_file(lib_dirs, 'termcap'):
|
||||
readline_libs.append('termcap')
|
||||
exts.append( Extension('readline', ['readline.c'],
|
||||
- library_dirs=['/usr/lib/termcap'],
|
||||
extra_link_args=readline_extra_link_args,
|
||||
libraries=readline_libs) )
|
||||
else:
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
From bac5ac529cc0902a340a5cd03308433c6e80d1f6 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:36:27 +0100
|
||||
Subject: [PATCH] Don't add multiarch paths
|
||||
|
||||
The add_multiarch_paths() function leads, in certain build
|
||||
environments, to the addition of host header paths to the CFLAGS,
|
||||
which is not appropriate for cross-compilation. This patch fixes that
|
||||
by simply removing the call to add_multiarch_paths() when we're
|
||||
cross-compiling.
|
||||
|
||||
Investigation done by David <buildroot-2014@inbox.com>.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
setup.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 24a7153..8380a64 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -474,10 +474,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')
|
||||
+ self.add_multiarch_paths()
|
||||
# only change this for cross builds for 3.3, issues on Mageia
|
||||
if cross_compiling:
|
||||
self.add_gcc_paths()
|
||||
- self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
From 86ef08e36597e14cac06aef176f12375a27fdef5 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:43:24 +0100
|
||||
Subject: [PATCH] Abort on failed module build
|
||||
|
||||
When building a Python module fails, the setup.py script currently
|
||||
doesn't exit with an error, and simply continues. This is not a really
|
||||
nice behavior, so this patch changes setup.py to abort with an error,
|
||||
so that the build issue is clearly noticeable.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
setup.py | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 8380a64..15b39f5 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -296,6 +296,7 @@ class PyBuildExt(build_ext):
|
||||
print("Failed to build these modules:")
|
||||
print_three_column(failed)
|
||||
print()
|
||||
+ sys.exit(1)
|
||||
|
||||
if self.failed_on_import:
|
||||
failed = self.failed_on_import[:]
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From ace3ebd517ea0ac42208b6a06c7e8f82da3b9c1b Mon Sep 17 00:00:00 2001
|
||||
From: Baruch Siach <baruch@tkos.co.il>
|
||||
Date: Wed, 23 Dec 2015 11:44:02 +0100
|
||||
Subject: [PATCH] Serial ioctl() workaround
|
||||
|
||||
The ioctls.h of some architectures (notably xtensa) references structs from
|
||||
linux/serial.h. Make sure to include this header as well.
|
||||
|
||||
Also, undef TIOCTTYGSTRUCT that require reference to internal kernel tty_struct,
|
||||
but isn't actually referenced in modern kernels.
|
||||
|
||||
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
|
||||
---
|
||||
Modules/termios.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/Modules/termios.c b/Modules/termios.c
|
||||
index b78d33e..58b0444 100644
|
||||
--- a/Modules/termios.c
|
||||
+++ b/Modules/termios.c
|
||||
@@ -9,7 +9,9 @@
|
||||
#endif
|
||||
|
||||
#include <termios.h>
|
||||
+#include <linux/serial.h>
|
||||
#include <sys/ioctl.h>
|
||||
+#undef TIOCTTYGSTRUCT
|
||||
|
||||
/* HP-UX requires that this be included to pick up MDCD, MCTS, MDSR,
|
||||
* MDTR, MRI, and MRTS (appearantly used internally by some things
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
From 45f482813de828415906e6a416c9c35450c38da7 Mon Sep 17 00:00:00 2001
|
||||
From: Christophe Vu-Brugier <cvubrugier@fastmail.fm>
|
||||
Date: Wed, 23 Dec 2015 11:44:30 +0100
|
||||
Subject: [PATCH] Do not adjust the shebang of Python scripts for
|
||||
cross-compilation
|
||||
|
||||
The copy_scripts() method in distutils copies the scripts listed in
|
||||
the setup file and adjusts the first line to refer to the current
|
||||
Python interpreter. When cross-compiling, this means that the adjusted
|
||||
shebang refers to the host Python interpreter.
|
||||
|
||||
This patch modifies copy_scripts() to preserve the shebang when
|
||||
cross-compilation is detected.
|
||||
|
||||
Signed-off-by: Christophe Vu-Brugier <cvubrugier@fastmail.fm>
|
||||
---
|
||||
Lib/distutils/command/build_scripts.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Lib/distutils/command/build_scripts.py b/Lib/distutils/command/build_scripts.py
|
||||
index 90a8380..bdf4cf1 100644
|
||||
--- a/Lib/distutils/command/build_scripts.py
|
||||
+++ b/Lib/distutils/command/build_scripts.py
|
||||
@@ -91,7 +91,7 @@ class build_scripts(Command):
|
||||
adjust = True
|
||||
post_interp = match.group(1) or b''
|
||||
|
||||
- if adjust:
|
||||
+ if adjust and not '_python_sysroot' in os.environ:
|
||||
log.info("copying and adjusting %s -> %s", script,
|
||||
self.build_dir)
|
||||
updated_files.append(outfile)
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
From 5858abdc25acd522869103d64b60a0c9687e2ec1 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Korsgaard <peter@korsgaard.com>
|
||||
Date: Thu, 20 Nov 2014 13:24:59 +0100
|
||||
Subject: [PATCH] Misc/python-config.sh.in: ensure sed invocations only match
|
||||
beginning of strings
|
||||
|
||||
The build/real prefix handling using sed breaks if build != real and the
|
||||
standard include / lib directories are used ($prefix/include and $prefix/lib).
|
||||
|
||||
E.G.
|
||||
|
||||
prefix_build="/usr", libdir="$prefix/lib", includedir="$prefix/include".
|
||||
|
||||
If this gets installed with make DESTDIR="/foo" install, then we end up with
|
||||
prefix_real = prefix = "/foo/usr" as expected, but
|
||||
includedir="/foo/foo/usr/include" and libdir="/foo/foo/usr/lib" because of
|
||||
the double sed invocation (prefix is already expanded). Work around it by
|
||||
ensuring we only match the beginning of the string.
|
||||
|
||||
Submitted upstream: http://bugs.python.org/issue22907
|
||||
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
Misc/python-config.sh.in | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/Misc/python-config.sh.in b/Misc/python-config.sh.in
|
||||
index 30c6927..f905a71 100644
|
||||
--- a/Misc/python-config.sh.in
|
||||
+++ b/Misc/python-config.sh.in
|
||||
@@ -29,12 +29,12 @@ 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#")
|
||||
+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#")
|
||||
+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@"
|
||||
PY_ENABLE_SHARED="@PY_ENABLE_SHARED@"
|
||||
LDVERSION="@LDVERSION@"
|
||||
LIBDEST=${prefix}/lib/python${VERSION}
|
||||
-LIBPL=$(echo "@LIBPL@" | sed "s#$prefix_build#$prefix_real#")
|
||||
+LIBPL=$(echo "@LIBPL@" | sed "s#^$prefix_build#$prefix_real#")
|
||||
SO="@EXT_SUFFIX@"
|
||||
PYTHONFRAMEWORK="@PYTHONFRAMEWORK@"
|
||||
INCDIR="-I$includedir/python${VERSION}${ABIFLAGS}"
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
From be44636b36086ca1b6de24265b7c3cc0c2bae913 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:45:13 +0100
|
||||
Subject: [PATCH] Do not harcode invalid path to ncursesw headers
|
||||
|
||||
Adding /usr/include/ncursesw is obviously invalid when
|
||||
cross-compiling. Since the ncursesw headers are no longer installed in
|
||||
usr/include/ncursesw/, but directly in usr/include, there is anyway no
|
||||
need for a special header path.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
setup.py | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 15b39f5..9e08e7e 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -1296,7 +1296,6 @@ class PyBuildExt(build_ext):
|
||||
panel_library = 'panel'
|
||||
if curses_library == 'ncursesw':
|
||||
curses_defines.append(('HAVE_NCURSESW', '1'))
|
||||
- curses_includes.append('/usr/include/ncursesw')
|
||||
# Bug 1464056: If _curses.so links with ncursesw,
|
||||
# _curses_panel.so must link with panelw.
|
||||
panel_library = 'panelw'
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
From 46fda6fc83500bf5663397f9d28b618e6b6b20c1 Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Cabrero <samuelcabrero@gmail.com>
|
||||
Date: Wed, 23 Dec 2015 11:45:48 +0100
|
||||
Subject: [PATCH] Override system locale and set to default when adding gcc
|
||||
paths
|
||||
|
||||
Forces the use of the default locale in the function
|
||||
add_gcc_paths, which is called when cross compiling to add the
|
||||
include and library paths. This is necessary because otherwise
|
||||
the gcc output is localized and the output parsing fails, which
|
||||
results in no paths added and detect_modules not able to find
|
||||
any system library (eg. libz, libssl, etc.)
|
||||
|
||||
[Thomas: patch taken from https://bugs.python.org/issue23767.]
|
||||
|
||||
Signed-off-by: Samuel Cabrero <samuelcabrero@gmail.com>
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
setup.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 9e08e7e..3feca04 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -441,7 +441,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)
|
||||
- ret = os.system('%s -E -v - </dev/null 2>%s 1>/dev/null' % (gcc, tmpfile))
|
||||
+ ret = os.system('LC_ALL=C %s -E -v - </dev/null 2>%s 1>/dev/null' % (gcc, tmpfile))
|
||||
is_gcc = False
|
||||
in_incdirs = False
|
||||
inc_dirs = []
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
From d2b5be9a0627e38d2280ef865dab3e74b7d2bde4 Mon Sep 17 00:00:00 2001
|
||||
From: Christophe Vu-Brugier <cvubrugier@fastmail.fm>
|
||||
Date: Wed, 23 Dec 2015 11:46:14 +0100
|
||||
Subject: [PATCH] Add importlib fix for PEP 3147 issue
|
||||
|
||||
Python 3 has a new standard for installing .pyc file, called PEP
|
||||
3147. Unfortunately, this standard requires both the .py and .pyc
|
||||
files to be installed for a Python module to be found. This is quite
|
||||
annoying on space-constrained embedded systems, since the .py file is
|
||||
technically not required for execution.
|
||||
|
||||
This patch changes cache_from_source() and source_from_cache() in
|
||||
importlib to get rid of the "__pycache__" directory.
|
||||
This effectively disables PEP 3147 for:
|
||||
|
||||
* The python standard library
|
||||
* Packages built with distutils or setuptools
|
||||
* Packages built with automake that use the `py-compile` helper
|
||||
|
||||
Signed-off-by: Christophe Vu-Brugier <cvubrugier@fastmail.fm>
|
||||
---
|
||||
Lib/importlib/_bootstrap_external.py | 37 +++++-------------------------------
|
||||
1 file changed, 5 insertions(+), 32 deletions(-)
|
||||
|
||||
diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
|
||||
index 616b17f..e30129c 100644
|
||||
--- a/Lib/importlib/_bootstrap_external.py
|
||||
+++ b/Lib/importlib/_bootstrap_external.py
|
||||
@@ -255,8 +255,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'.
|
||||
|
||||
- If sys.implementation.cache_tag is None then NotImplementedError is raised.
|
||||
-
|
||||
"""
|
||||
if debug_override is not None:
|
||||
_warnings.warn('the debug_override parameter is deprecated; use '
|
||||
@@ -267,10 +265,7 @@ def cache_from_source(path, debug_override=None, *, optimization=None):
|
||||
optimization = '' if debug_override else 1
|
||||
head, tail = _path_split(path)
|
||||
base, sep, rest = tail.rpartition('.')
|
||||
- tag = sys.implementation.cache_tag
|
||||
- if tag is None:
|
||||
- raise NotImplementedError('sys.implementation.cache_tag is None')
|
||||
- almost_filename = ''.join([(base if base else rest), sep, tag])
|
||||
+ almost_filename = ''.join([(base if base else rest)])
|
||||
if optimization is None:
|
||||
if sys.flags.optimize == 0:
|
||||
optimization = ''
|
||||
@@ -281,39 +276,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)
|
||||
- return _path_join(head, _PYCACHE, almost_filename + BYTECODE_SUFFIXES[0])
|
||||
+ return _path_join(head, almost_filename + BYTECODE_SUFFIXES[0])
|
||||
|
||||
|
||||
def source_from_cache(path):
|
||||
"""Given the path to a .pyc. file, return the path to its .py file.
|
||||
|
||||
The .pyc file does not need to exist; this simply returns the path to
|
||||
- the .py file calculated to correspond to the .pyc file. If path does
|
||||
- not conform to PEP 3147/488 format, ValueError will be raised. If
|
||||
- sys.implementation.cache_tag is None then NotImplementedError is raised.
|
||||
-
|
||||
+ the .py file calculated to correspond to the .pyc file.
|
||||
"""
|
||||
- if sys.implementation.cache_tag is None:
|
||||
- raise NotImplementedError('sys.implementation.cache_tag is None')
|
||||
- head, pycache_filename = _path_split(path)
|
||||
- head, pycache = _path_split(head)
|
||||
- if pycache != _PYCACHE:
|
||||
- raise ValueError('{} not bottom-level directory in '
|
||||
- '{!r}'.format(_PYCACHE, path))
|
||||
- dot_count = pycache_filename.count('.')
|
||||
- if dot_count not in {2, 3}:
|
||||
- raise ValueError('expected only 2 or 3 dots in '
|
||||
- '{!r}'.format(pycache_filename))
|
||||
- elif dot_count == 3:
|
||||
- optimization = pycache_filename.rsplit('.', 2)[-2]
|
||||
- if not optimization.startswith(_OPT):
|
||||
- raise ValueError("optimization portion of filename does not start "
|
||||
- "with {!r}".format(_OPT))
|
||||
- opt_level = optimization[len(_OPT):]
|
||||
- if not opt_level.isalnum():
|
||||
- raise ValueError("optimization level {!r} is not an alphanumeric "
|
||||
- "value".format(optimization))
|
||||
- base_filename = pycache_filename.partition('.')[0]
|
||||
+ head, filename = _path_split(path)
|
||||
+ base_filename = filename.partition('.')[0]
|
||||
return _path_join(head, base_filename + SOURCE_SUFFIXES[0])
|
||||
|
||||
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
From 1d2891204c6bf05d5e2eb0e5fa2ee78f6a2b755b Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:47:00 +0100
|
||||
Subject: [PATCH] Add an option to disable installation of test modules
|
||||
|
||||
The Python standard distribution comes with many test modules, that
|
||||
are not necessarly useful on embedded targets.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
|
||||
---
|
||||
Makefile.pre.in | 56 ++++++++++++++++++++++++++++++++++++--------------------
|
||||
configure.ac | 6 ++++++
|
||||
2 files changed, 42 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||
index 9420860..d4c771a 100644
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -1166,8 +1166,30 @@ maninstall: altmaninstall
|
||||
PLATDIR= @PLATDIR@
|
||||
MACHDEPS= $(PLATDIR)
|
||||
XMLLIBSUBDIRS= xml xml/dom xml/etree xml/parsers xml/sax
|
||||
-LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \
|
||||
- tkinter/test/test_ttk site-packages test \
|
||||
+LIBSUBDIRS= tkinter \
|
||||
+ site-packages \
|
||||
+ asyncio \
|
||||
+ collections concurrent concurrent/futures encodings \
|
||||
+ email email/mime \
|
||||
+ ensurepip ensurepip/_bundled \
|
||||
+ 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) \
|
||||
+ importlib \
|
||||
+ turtledemo \
|
||||
+ multiprocessing multiprocessing/dummy \
|
||||
+ unittest \
|
||||
+ venv venv/scripts venv/scripts/posix \
|
||||
+ curses pydoc_data $(MACHDEPS)
|
||||
+
|
||||
+TESTSUBDIRS = tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
|
||||
+ test test/test_asyncio \
|
||||
+ test/test_email test/test_email/data \
|
||||
+ test/test_json \
|
||||
test/audiodata \
|
||||
test/capath test/data \
|
||||
test/cjkencodings test/decimaltestdata test/xmltestdata \
|
||||
@@ -1199,28 +1221,22 @@ 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 \
|
||||
- asyncio \
|
||||
- test/test_asyncio \
|
||||
- collections concurrent concurrent/futures encodings \
|
||||
- email email/mime test/test_email test/test_email/data \
|
||||
- ensurepip ensurepip/_bundled \
|
||||
- html json test/test_json http dbm xmlrpc \
|
||||
- sqlite3 sqlite3/test \
|
||||
- logging csv wsgiref urllib \
|
||||
- lib2to3 lib2to3/fixes lib2to3/pgen2 lib2to3/tests \
|
||||
+ sqlite3/test \
|
||||
+ lib2to3/tests \
|
||||
lib2to3/tests/data lib2to3/tests/data/fixers \
|
||||
lib2to3/tests/data/fixers/myfixes \
|
||||
- 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 \
|
||||
- turtledemo \
|
||||
- multiprocessing multiprocessing/dummy \
|
||||
- unittest unittest/test unittest/test/testmock \
|
||||
- venv venv/scripts venv/scripts/posix \
|
||||
- curses pydoc_data $(MACHDEPS)
|
||||
+ unittest/test unittest/test/testmock
|
||||
+
|
||||
+ifeq (@TEST_MODULES@,yes)
|
||||
+LIBSUBDIRS += $(TESTSUBDIRS)
|
||||
+endif
|
||||
+
|
||||
libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
|
||||
@for i in $(SCRIPTDIR) $(LIBDEST); \
|
||||
do \
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index bfb599e..9f3d226 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2895,6 +2895,12 @@ if test "$posix_threads" = "yes"; then
|
||||
fi
|
||||
|
||||
|
||||
+AC_SUBST(TEST_MODULES)
|
||||
+
|
||||
+AC_ARG_ENABLE(test-modules,
|
||||
+ AS_HELP_STRING([--disable-test-modules], [disable test modules]),
|
||||
+ [ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ])
|
||||
+
|
||||
# Check for enable-ipv6
|
||||
AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
|
||||
AC_MSG_CHECKING([if --enable-ipv6 is specified])
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
From a83b79b964700604de386800f86e5a55f53a0e17 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:47:11 +0100
|
||||
Subject: [PATCH] Add an option to disable pydoc
|
||||
|
||||
It removes 0.5 MB of data from the target plus the pydoc script
|
||||
itself.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
|
||||
---
|
||||
Makefile.pre.in | 8 +++++++-
|
||||
configure.ac | 5 +++++
|
||||
setup.py | 9 +++++++--
|
||||
3 files changed, 19 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||
index d4c771a..a98ad65 100644
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -1134,7 +1134,9 @@ bininstall: altbininstall
|
||||
-rm -f $(DESTDIR)$(BINDIR)/idle3
|
||||
(cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3)
|
||||
-rm -f $(DESTDIR)$(BINDIR)/pydoc3
|
||||
+ifeq (@PYDOC@,yes)
|
||||
(cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3)
|
||||
+endif
|
||||
-rm -f $(DESTDIR)$(BINDIR)/2to3
|
||||
(cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3)
|
||||
-rm -f $(DESTDIR)$(BINDIR)/pyvenv
|
||||
@@ -1184,7 +1186,7 @@ LIBSUBDIRS= tkinter \
|
||||
multiprocessing multiprocessing/dummy \
|
||||
unittest \
|
||||
venv venv/scripts venv/scripts/posix \
|
||||
- curses pydoc_data $(MACHDEPS)
|
||||
+ curses $(MACHDEPS)
|
||||
|
||||
TESTSUBDIRS = tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
|
||||
test test/test_asyncio \
|
||||
@@ -1233,6 +1235,10 @@ TESTSUBDIRS = tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
|
||||
test/test_importlib/import_ test/test_importlib/source \
|
||||
unittest/test unittest/test/testmock
|
||||
|
||||
+ifeq (@PYDOC@,yes)
|
||||
+LIBSUBDIRS += pydoc_data
|
||||
+endif
|
||||
+
|
||||
ifeq (@TEST_MODULES@,yes)
|
||||
LIBSUBDIRS += $(TESTSUBDIRS)
|
||||
endif
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 9f3d226..e9b6d6f 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2894,6 +2894,11 @@ if test "$posix_threads" = "yes"; then
|
||||
AC_CHECK_FUNCS(pthread_atfork)
|
||||
fi
|
||||
|
||||
+AC_SUBST(PYDOC)
|
||||
+
|
||||
+AC_ARG_ENABLE(pydoc,
|
||||
+ AS_HELP_STRING([--disable-pydoc], [disable pydoc]),
|
||||
+ [ PYDOC="${enableval}" ], [ PYDOC=yes ])
|
||||
|
||||
AC_SUBST(TEST_MODULES)
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 3feca04..137911d 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -2220,6 +2220,12 @@ def main():
|
||||
# turn off warnings when deprecated modules are imported
|
||||
import warnings
|
||||
warnings.filterwarnings("ignore",category=DeprecationWarning)
|
||||
+
|
||||
+ scripts = ['Tools/scripts/idle3', 'Tools/scripts/2to3',
|
||||
+ 'Lib/smtpd.py']
|
||||
+ if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"):
|
||||
+ scripts += [ 'Tools/scripts/pydoc3' ]
|
||||
+
|
||||
setup(# PyPI Metadata (PEP 301)
|
||||
name = "Python",
|
||||
version = sys.version.split()[0],
|
||||
@@ -2244,8 +2250,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
|
||||
- scripts = ["Tools/scripts/pydoc3", "Tools/scripts/idle3",
|
||||
- "Tools/scripts/2to3", "Tools/scripts/pyvenv"]
|
||||
+ scripts = scripts,
|
||||
)
|
||||
|
||||
# --install-platlib
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
From 3c877ea9f09913586f87064b7a2b9d2b49cb05aa Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:48:44 +0100
|
||||
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>
|
||||
---
|
||||
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 a98ad65..3823940 100644
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -1138,7 +1138,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 \
|
||||
@@ -1177,7 +1179,6 @@ LIBSUBDIRS= tkinter \
|
||||
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) \
|
||||
@@ -1224,9 +1225,6 @@ TESTSUBDIRS = tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
|
||||
test/test_importlib/namespace_pkgs/module_and_namespace_package \
|
||||
test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test \
|
||||
sqlite3/test \
|
||||
- lib2to3/tests \
|
||||
- lib2to3/tests/data lib2to3/tests/data/fixers \
|
||||
- lib2to3/tests/data/fixers/myfixes \
|
||||
ctypes/test \
|
||||
idlelib/idle_test \
|
||||
distutils/tests \
|
||||
@@ -1239,6 +1237,14 @@ ifeq (@PYDOC@,yes)
|
||||
LIBSUBDIRS += pydoc_data
|
||||
endif
|
||||
|
||||
+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
|
||||
@@ -1337,10 +1343,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
|
||||
|
||||
# Create the PLATDIR source directory, if one wasn't distributed..
|
||||
$(srcdir)/Lib/$(PLATDIR):
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index e9b6d6f..652ad88 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2906,6 +2906,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 137911d..722308b 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -2221,10 +2221,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.6.4
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
From 9ae1dce0a2fa01fc3dbc83d8b8c1b56e4b1b162b Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:49:01 +0100
|
||||
Subject: [PATCH] Add option to disable the sqlite3 module
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
|
||||
---
|
||||
Makefile.pre.in | 7 +++++--
|
||||
configure.ac | 9 +++++++++
|
||||
2 files changed, 14 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||
index 3823940..c822dbd 100644
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -1177,7 +1177,6 @@ LIBSUBDIRS= tkinter \
|
||||
email email/mime \
|
||||
ensurepip ensurepip/_bundled \
|
||||
html json http dbm xmlrpc \
|
||||
- sqlite3 \
|
||||
logging csv wsgiref urllib \
|
||||
ctypes ctypes/macholib \
|
||||
idlelib idlelib/Icons \
|
||||
@@ -1224,7 +1223,6 @@ TESTSUBDIRS = tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
|
||||
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 \
|
||||
- sqlite3/test \
|
||||
ctypes/test \
|
||||
idlelib/idle_test \
|
||||
distutils/tests \
|
||||
@@ -1245,6 +1243,11 @@ TESTSUBDIRS += lib2to3/tests \
|
||||
lib2to3/tests/data/fixers/myfixes
|
||||
endif
|
||||
|
||||
+ifeq (@SQLITE3@,yes)
|
||||
+LIBSUBDIRS += sqlite3
|
||||
+TESTSUBDIRS += sqlite3/test
|
||||
+endif
|
||||
+
|
||||
ifeq (@TEST_MODULES@,yes)
|
||||
LIBSUBDIRS += $(TESTSUBDIRS)
|
||||
endif
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 652ad88..cae12ad 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2894,6 +2894,15 @@ if test "$posix_threads" = "yes"; then
|
||||
AC_CHECK_FUNCS(pthread_atfork)
|
||||
fi
|
||||
|
||||
+AC_SUBST(SQLITE3)
|
||||
+AC_ARG_ENABLE(sqlite3,
|
||||
+ AS_HELP_STRING([--disable-sqlite3], [disable sqlite3]),
|
||||
+ [ SQLITE3="${enableval}" ], [ SQLITE3=yes ])
|
||||
+
|
||||
+if test "$SQLITE3" = "no" ; then
|
||||
+ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3"
|
||||
+fi
|
||||
+
|
||||
AC_SUBST(PYDOC)
|
||||
|
||||
AC_ARG_ENABLE(pydoc,
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
From d0d42570e5a23c3bf559e0413ec97729fd2f9e24 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:49:14 +0100
|
||||
Subject: [PATCH] Add an option to disable the tk module
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
|
||||
---
|
||||
Makefile.pre.in | 11 ++++++++---
|
||||
configure.ac | 9 +++++++++
|
||||
2 files changed, 17 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||
index c822dbd..0a93c27 100644
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -1170,7 +1170,7 @@ maninstall: altmaninstall
|
||||
PLATDIR= @PLATDIR@
|
||||
MACHDEPS= $(PLATDIR)
|
||||
XMLLIBSUBDIRS= xml xml/dom xml/etree xml/parsers xml/sax
|
||||
-LIBSUBDIRS= tkinter \
|
||||
+LIBSUBDIRS= \
|
||||
site-packages \
|
||||
asyncio \
|
||||
collections concurrent concurrent/futures encodings \
|
||||
@@ -1188,8 +1188,7 @@ LIBSUBDIRS= tkinter \
|
||||
venv venv/scripts venv/scripts/posix \
|
||||
curses $(MACHDEPS)
|
||||
|
||||
-TESTSUBDIRS = tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
|
||||
- test test/test_asyncio \
|
||||
+TESTSUBDIRS = test test/test_asyncio \
|
||||
test/test_email test/test_email/data \
|
||||
test/test_json \
|
||||
test/audiodata \
|
||||
@@ -1248,6 +1247,12 @@ LIBSUBDIRS += sqlite3
|
||||
TESTSUBDIRS += sqlite3/test
|
||||
endif
|
||||
|
||||
+ifeq (@TK@,yes)
|
||||
+LIBSUBDIRS += tkinter
|
||||
+TESTSUBDIRS += tkinter/test tkinter/test/test_tkinter \
|
||||
+ tkinter/test/test_ttk
|
||||
+endif
|
||||
+
|
||||
ifeq (@TEST_MODULES@,yes)
|
||||
LIBSUBDIRS += $(TESTSUBDIRS)
|
||||
endif
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index cae12ad..787b185 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2903,6 +2903,15 @@ if test "$SQLITE3" = "no" ; then
|
||||
DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3"
|
||||
fi
|
||||
|
||||
+AC_SUBST(TK)
|
||||
+AC_ARG_ENABLE(tk,
|
||||
+ AS_HELP_STRING([--disable-tk], [disable tk]),
|
||||
+ [ TK="${enableval}" ], [ TK=yes ])
|
||||
+
|
||||
+if test "$TK" = "no"; then
|
||||
+ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter"
|
||||
+fi
|
||||
+
|
||||
AC_SUBST(PYDOC)
|
||||
|
||||
AC_ARG_ENABLE(pydoc,
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
From d04ec780bf7c0825ab260bd1d6b7292141b2dcde Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:49:30 +0100
|
||||
Subject: [PATCH] Add an option to disable the curses module
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
|
||||
---
|
||||
Makefile.pre.in | 6 +++++-
|
||||
configure.ac | 9 +++++++++
|
||||
2 files changed, 14 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||
index 0a93c27..b97c21e 100644
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -1186,7 +1186,7 @@ LIBSUBDIRS= \
|
||||
multiprocessing multiprocessing/dummy \
|
||||
unittest \
|
||||
venv venv/scripts venv/scripts/posix \
|
||||
- curses $(MACHDEPS)
|
||||
+ $(MACHDEPS)
|
||||
|
||||
TESTSUBDIRS = test test/test_asyncio \
|
||||
test/test_email test/test_email/data \
|
||||
@@ -1253,6 +1253,10 @@ TESTSUBDIRS += tkinter/test tkinter/test/test_tkinter \
|
||||
tkinter/test/test_ttk
|
||||
endif
|
||||
|
||||
+ifeq (@CURSES@,yes)
|
||||
+LIBSUBDIRS += curses
|
||||
+endif
|
||||
+
|
||||
ifeq (@TEST_MODULES@,yes)
|
||||
LIBSUBDIRS += $(TESTSUBDIRS)
|
||||
endif
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 787b185..0be47b2 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2912,6 +2912,15 @@ if test "$TK" = "no"; then
|
||||
DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter"
|
||||
fi
|
||||
|
||||
+AC_SUBST(CURSES)
|
||||
+AC_ARG_ENABLE(curses,
|
||||
+ AS_HELP_STRING([--disable-curses], [disable curses]),
|
||||
+ [ CURSES="${enableval}" ], [ CURSES=yes ])
|
||||
+
|
||||
+if test "$CURSES" = "no"; then
|
||||
+ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _curses _curses_panel"
|
||||
+fi
|
||||
+
|
||||
AC_SUBST(PYDOC)
|
||||
|
||||
AC_ARG_ENABLE(pydoc,
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
From 6281850ee8c3fb6d93b4997833af0cca4a48947b Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:49:42 +0100
|
||||
Subject: [PATCH] Add an option to disable expat
|
||||
|
||||
This patch replaces the existing --with-system-expat option with a
|
||||
--with-expat={system,builtin,none} option, which allows to tell Python
|
||||
whether we want to use the system expat (already installed), the expat
|
||||
builtin the Python sources, or no expat at all (which disables the
|
||||
installation of XML modules).
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
|
||||
---
|
||||
Makefile.pre.in | 6 +++++-
|
||||
configure.ac | 18 +++++++++++++-----
|
||||
setup.py | 2 +-
|
||||
3 files changed, 19 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||
index b97c21e..bdfee19 100644
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -1180,7 +1180,7 @@ LIBSUBDIRS= \
|
||||
logging csv wsgiref urllib \
|
||||
ctypes ctypes/macholib \
|
||||
idlelib idlelib/Icons \
|
||||
- distutils distutils/command $(XMLLIBSUBDIRS) \
|
||||
+ distutils distutils/command \
|
||||
importlib \
|
||||
turtledemo \
|
||||
multiprocessing multiprocessing/dummy \
|
||||
@@ -1257,6 +1257,10 @@ ifeq (@CURSES@,yes)
|
||||
LIBSUBDIRS += curses
|
||||
endif
|
||||
|
||||
+ifeq (@EXPAT@,yes)
|
||||
+LIBSUBDIRS += $(XMLLIBSUBDIRS)
|
||||
+endif
|
||||
+
|
||||
ifeq (@TEST_MODULES@,yes)
|
||||
LIBSUBDIRS += $(TESTSUBDIRS)
|
||||
endif
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 0be47b2..e6bcacc 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2591,13 +2591,21 @@ PKG_PROG_PKG_CONFIG
|
||||
AC_SUBST(DISABLED_EXTENSIONS)
|
||||
|
||||
# Check for use of the system expat library
|
||||
-AC_MSG_CHECKING(for --with-system-expat)
|
||||
-AC_ARG_WITH(system_expat,
|
||||
- AS_HELP_STRING([--with-system-expat], [build pyexpat module using an installed expat library]),
|
||||
+AC_MSG_CHECKING(for --with-expat)
|
||||
+AC_ARG_WITH(expat,
|
||||
+ AS_HELP_STRING([--with-expat], [select which expat version to use: system, builtin, none]),
|
||||
[],
|
||||
- [with_system_expat="no"])
|
||||
+ [with_expat="builtin"])
|
||||
|
||||
-AC_MSG_RESULT($with_system_expat)
|
||||
+AC_MSG_RESULT($with_expat)
|
||||
+
|
||||
+if test "$with_expat" != "none"; then
|
||||
+ EXPAT=yes
|
||||
+else
|
||||
+ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} pyexpat"
|
||||
+ EXPAT=no
|
||||
+fi
|
||||
+AC_SUBST(EXPAT)
|
||||
|
||||
# Check for use of the system libffi library
|
||||
AC_MSG_CHECKING(for --with-system-ffi)
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 722308b..ecddb6a 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -1434,7 +1434,7 @@ class PyBuildExt(build_ext):
|
||||
#
|
||||
# More information on Expat can be found at www.libexpat.org.
|
||||
#
|
||||
- if '--with-system-expat' in sysconfig.get_config_var("CONFIG_ARGS"):
|
||||
+ if '--with-expat=system' in sysconfig.get_config_var("CONFIG_ARGS"):
|
||||
expat_inc = []
|
||||
define_macros = []
|
||||
expat_lib = ['expat']
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
From 18265d05ee97ad0c43995acdadce2458b57d7d64 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:49:55 +0100
|
||||
Subject: [PATCH] Add an option to disable CJK codecs
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
configure.ac | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index e6bcacc..38b7515 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2911,6 +2911,12 @@ if test "$SQLITE3" = "no" ; then
|
||||
DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3"
|
||||
fi
|
||||
|
||||
+AC_ARG_ENABLE(codecs-cjk,
|
||||
+ AS_HELP_STRING([--disable-codecs-cjk], [disable CJK codecs]),
|
||||
+ [ if test "$enableval" = "no"; then
|
||||
+ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk _codecs_iso2022"
|
||||
+ fi])
|
||||
+
|
||||
AC_SUBST(TK)
|
||||
AC_ARG_ENABLE(tk,
|
||||
AS_HELP_STRING([--disable-tk], [disable tk]),
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From 733ee65f308ec48be427463c06f372ca116ccada Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:50:11 +0100
|
||||
Subject: [PATCH] Add an option to disable NIS
|
||||
|
||||
NIS is not necessarily available in uClibc, so we need an option to
|
||||
not compile support for it.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
configure.ac | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 38b7515..f25733a 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2917,6 +2917,12 @@ AC_ARG_ENABLE(codecs-cjk,
|
||||
DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk _codecs_iso2022"
|
||||
fi])
|
||||
|
||||
+AC_ARG_ENABLE(nis,
|
||||
+ AS_HELP_STRING([--disable-nis], [disable NIS]),
|
||||
+ [ if test "$enableval" = "no"; then
|
||||
+ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis"
|
||||
+ fi])
|
||||
+
|
||||
AC_SUBST(TK)
|
||||
AC_ARG_ENABLE(tk,
|
||||
AS_HELP_STRING([--disable-tk], [disable tk]),
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
From 64fa1fc3a9aea7ffba7b96d08a14df91051f2b6f Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:50:27 +0100
|
||||
Subject: [PATCH] Add an option to disable unicodedata
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
configure.ac | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index f25733a..a7ddb2b 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2923,6 +2923,12 @@ AC_ARG_ENABLE(nis,
|
||||
DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis"
|
||||
fi])
|
||||
|
||||
+AC_ARG_ENABLE(unicodedata,
|
||||
+ AS_HELP_STRING([--disable-unicodedata], [disable unicodedata]),
|
||||
+ [ if test "$enableval" = "no"; then
|
||||
+ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} unicodedata"
|
||||
+ fi])
|
||||
+
|
||||
AC_SUBST(TK)
|
||||
AC_ARG_ENABLE(tk,
|
||||
AS_HELP_STRING([--disable-tk], [disable tk]),
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
From 2766bcdd8f9b7395ce32a6d8480ef0a2186f2098 Mon Sep 17 00:00:00 2001
|
||||
From: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:50:42 +0100
|
||||
Subject: [PATCH] Add an option to disable IDLE
|
||||
|
||||
IDLE is an IDE embedded into python, written using Tk, so it doesn't make
|
||||
much sense to have it into our build.
|
||||
|
||||
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
---
|
||||
Makefile.pre.in | 7 ++++++-
|
||||
configure.ac | 6 ++++++
|
||||
setup.py | 4 +++-
|
||||
3 files changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||
index bdfee19..2466615 100644
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -1132,7 +1132,9 @@ bininstall: altbininstall
|
||||
-rm -f $(DESTDIR)$(LIBPC)/python3.pc
|
||||
(cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python3.pc)
|
||||
-rm -f $(DESTDIR)$(BINDIR)/idle3
|
||||
+ifeq (@IDLE@,yes)
|
||||
(cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3)
|
||||
+endif
|
||||
-rm -f $(DESTDIR)$(BINDIR)/pydoc3
|
||||
ifeq (@PYDOC@,yes)
|
||||
(cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3)
|
||||
@@ -1179,7 +1181,6 @@ LIBSUBDIRS= \
|
||||
html json http dbm xmlrpc \
|
||||
logging csv wsgiref urllib \
|
||||
ctypes ctypes/macholib \
|
||||
- idlelib idlelib/Icons \
|
||||
distutils distutils/command \
|
||||
importlib \
|
||||
turtledemo \
|
||||
@@ -1261,6 +1262,10 @@ ifeq (@EXPAT@,yes)
|
||||
LIBSUBDIRS += $(XMLLIBSUBDIRS)
|
||||
endif
|
||||
|
||||
+ifeq (@IDLE@,yes)
|
||||
+LIBSUBDIRS += idlelib idlelib/Icons
|
||||
+endif
|
||||
+
|
||||
ifeq (@TEST_MODULES@,yes)
|
||||
LIBSUBDIRS += $(TESTSUBDIRS)
|
||||
endif
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index a7ddb2b..6b59792 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2965,6 +2965,12 @@ AC_ARG_ENABLE(lib2to3,
|
||||
AS_HELP_STRING([--disable-lib2to3], [disable lib2to3]),
|
||||
[ LIB2TO3="${enableval}" ], [ LIB2TO3=yes ])
|
||||
|
||||
+AC_SUBST(IDLE)
|
||||
+
|
||||
+AC_ARG_ENABLE(idle3,
|
||||
+ AS_HELP_STRING([--disable-idle3], [disable idle3 IDE]),
|
||||
+ [ IDLE="${enableval}" ], [ IDLE=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 ecddb6a..7fe68e8 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -2221,11 +2221,13 @@ def main():
|
||||
import warnings
|
||||
warnings.filterwarnings("ignore",category=DeprecationWarning)
|
||||
|
||||
- scripts = ['Tools/scripts/idle3', 'Lib/smtpd.py']
|
||||
+ scripts = ['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' ]
|
||||
+ if not '--disable-idle3' in sysconfig.get_config_var("CONFIG_ARGS"):
|
||||
+ scripts += [ 'Tools/scripts/idle3' ]
|
||||
|
||||
setup(# PyPI Metadata (PEP 301)
|
||||
name = "Python",
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
From ff77defc777a57d4caee5183796fd44dd265e78b Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:51:31 +0100
|
||||
Subject: [PATCH] Add an option to disable decimal
|
||||
|
||||
This patch replaces the existing --with-system-libmpdec option with a
|
||||
--with-libmpdec={system,builtin,none} option, which allows to tell
|
||||
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 <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
configure.ac | 17 ++++++++++++-----
|
||||
setup.py | 2 +-
|
||||
2 files changed, 13 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 6b59792..51e1760 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2624,13 +2624,20 @@ AC_SUBST(LIBFFI_INCLUDEDIR)
|
||||
AC_MSG_RESULT($with_system_ffi)
|
||||
|
||||
# Check for use of the system libmpdec library
|
||||
-AC_MSG_CHECKING(for --with-system-libmpdec)
|
||||
-AC_ARG_WITH(system_libmpdec,
|
||||
- AS_HELP_STRING([--with-system-libmpdec], [build _decimal module using an installed libmpdec library]),
|
||||
+AC_MSG_CHECKING(for --with-libmpdec)
|
||||
+AC_ARG_WITH(libmpdec,
|
||||
+ AS_HELP_STRING([--with-libmpdec], [select which libmpdec version to use: system, builtin, none]),
|
||||
[],
|
||||
- [with_system_libmpdec="no"])
|
||||
+ [with_libmpdec="builtin"])
|
||||
|
||||
-AC_MSG_RESULT($with_system_libmpdec)
|
||||
+AC_MSG_RESULT($with_libmpdec)
|
||||
+if test "$with_libmpdec" != "none"; then
|
||||
+ MPDEC=yes
|
||||
+else
|
||||
+ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _decimal"
|
||||
+ MPDEC=no
|
||||
+fi
|
||||
+AC_SUBST(MPDEC)
|
||||
|
||||
# Check for support for loadable sqlite extensions
|
||||
AC_MSG_CHECKING(for --enable-loadable-sqlite-extensions)
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 7fe68e8..364b350 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -1988,7 +1988,7 @@ class PyBuildExt(build_ext):
|
||||
def _decimal_ext(self):
|
||||
extra_compile_args = []
|
||||
undef_macros = []
|
||||
- if '--with-system-libmpdec' in sysconfig.get_config_var("CONFIG_ARGS"):
|
||||
+ if '--with-libmpdec=system' in sysconfig.get_config_var("CONFIG_ARGS"):
|
||||
include_dirs = []
|
||||
libraries = [':libmpdec.so.2']
|
||||
sources = ['_decimal/_decimal.c']
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
From 789b0f99d7c1d25bfa9c05fd12f4d55bb70f377b Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 11:51:58 +0100
|
||||
Subject: [PATCH] Add an option to disable the ossaudiodev module
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
configure.ac | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 51e1760..c4c2353 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2639,6 +2639,12 @@ else
|
||||
fi
|
||||
AC_SUBST(MPDEC)
|
||||
|
||||
+AC_ARG_ENABLE(ossaudiodev,
|
||||
+ AS_HELP_STRING([--disable-ossaudiodev], [disable OSSAUDIODEV]),
|
||||
+ [ if test "$enableval" = "no"; then
|
||||
+ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ossaudiodev"
|
||||
+ fi])
|
||||
+
|
||||
# Check for support for loadable sqlite extensions
|
||||
AC_MSG_CHECKING(for --enable-loadable-sqlite-extensions)
|
||||
AC_ARG_ENABLE(loadable-sqlite-extensions,
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
From 21f787cb9bf0c1440981262f03bc881c5b77c0d8 Mon Sep 17 00:00:00 2001
|
||||
From: Matt Weber <matthew.weber@rockwellcollins.com>
|
||||
Date: Fri, 6 Oct 2017 09:54:15 -0500
|
||||
Subject: [PATCH] python-config.sh: don't reassign ${prefix}
|
||||
|
||||
When prefix is set to a path like /usr during crossbuild
|
||||
the sed operations end up executing twice, once for the prefix
|
||||
reassignment and another for includedir if it is set as a string
|
||||
including the ${prefix} variable. This results in an issue
|
||||
when the build directory is under /usr.
|
||||
|
||||
This patch updates the remaining location which uses the prefix
|
||||
variable to also sed and update to use the real path.
|
||||
|
||||
Upstream bug report:
|
||||
https://bugs.python.org/issue31713
|
||||
|
||||
Buildroot bug:
|
||||
https://bugs.busybox.net/show_bug.cgi?id=10361
|
||||
|
||||
Fixes failures like the following:
|
||||
dbus-python-1.2.4 | NOK | http://autobuild.buildroot.net/results/758858efa97b6273c1b470513f5492258a6d8853
|
||||
|
||||
Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
|
||||
---
|
||||
Misc/python-config.sh.in | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Misc/python-config.sh.in b/Misc/python-config.sh.in
|
||||
index f905a71..e06be0f 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.
|
||||
-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#")
|
||||
includedir=$(echo "@includedir@" | sed "s#^$prefix_build#$prefix_real#")
|
||||
@@ -47,7 +46,7 @@ LINKFORSHARED="@LINKFORSHARED@"
|
||||
OPT="@OPT@"
|
||||
PY_ENABLE_SHARED="@PY_ENABLE_SHARED@"
|
||||
LDVERSION="@LDVERSION@"
|
||||
-LIBDEST=${prefix}/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
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
From 4f851142b8f3149d23654117621285df34ec768b Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Wed, 23 Dec 2015 13:58:00 +0100
|
||||
Subject: [PATCH] Support PGEN_FOR_BUILD and FREEZE_IMPORTLIB_FOR_BUILD
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
Makefile.pre.in | 10 ++++++++++
|
||||
configure.ac | 3 +++
|
||||
2 files changed, 13 insertions(+)
|
||||
|
||||
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||
index 2466615..fdf622d 100644
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -712,10 +712,15 @@ Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
|
||||
############################################################################
|
||||
# Importlib
|
||||
|
||||
+ifeq (@FREEZE_IMPORTLIB_FOR_BUILD@,)
|
||||
Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile
|
||||
|
||||
Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)
|
||||
$(LINKCC) $(PY_LDFLAGS) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
|
||||
+else
|
||||
+Programs/_freeze_importlib: @FREEZE_IMPORTLIB_FOR_BUILD@
|
||||
+ cp $^ $@
|
||||
+endif
|
||||
|
||||
Python/importlib_external.h: $(srcdir)/Lib/importlib/_bootstrap_external.py Programs/_freeze_importlib
|
||||
./Programs/_freeze_importlib \
|
||||
@@ -789,8 +794,13 @@ $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN)
|
||||
$(GRAMMAR_C): $(GRAMMAR_H)
|
||||
touch $(GRAMMAR_C)
|
||||
|
||||
+ifeq (@PGEN_FOR_BUILD@,)
|
||||
$(PGEN): $(PGENOBJS)
|
||||
$(CC) $(OPT) $(PY_LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
|
||||
+else
|
||||
+$(PGEN): @PGEN_FOR_BUILD@
|
||||
+ cp $^ $@
|
||||
+endif
|
||||
|
||||
Parser/grammar.o: $(srcdir)/Parser/grammar.c \
|
||||
$(srcdir)/Include/token.h \
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index c4c2353..750c232 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -79,6 +79,9 @@ else
|
||||
fi
|
||||
AC_SUBST(PYTHON_FOR_BUILD)
|
||||
|
||||
+AC_SUBST(PGEN_FOR_BUILD)
|
||||
+AC_SUBST(FREEZE_IMPORTLIB_FOR_BUILD)
|
||||
+
|
||||
dnl Ensure that if prefix is specified, it does not end in a slash. If
|
||||
dnl it does, we get path names containing '//' which is both ugly and
|
||||
dnl can cause trouble.
|
||||
--
|
||||
2.6.4
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
From: Nicolas Cavallari <nicolas.cavallari@green-communications.fr>
|
||||
Subject: [PATCH] Add an option to disable openssl support.
|
||||
|
||||
Signed-off-by: Nicolas Cavallari <nicolas.cavallari@green-communications.fr>
|
||||
---
|
||||
configure.ac | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3027,6 +3027,12 @@
|
||||
DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} unicodedata"
|
||||
fi])
|
||||
|
||||
+AC_ARG_ENABLE(openssl,
|
||||
+ AS_HELP_STRING([--disable-openssl], [disable openssl support]),
|
||||
+ [ if test "$enableval" = "no"; then
|
||||
+ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ssl _ssl _hashlib"
|
||||
+ fi])
|
||||
+
|
||||
AC_SUBST(TK)
|
||||
AC_ARG_ENABLE(tk,
|
||||
AS_HELP_STRING([--disable-tk], [disable tk]),
|
||||
115
bsp/buildroot-2017.02.11/package/python3/Config.in
Normal file
115
bsp/buildroot-2017.02.11/package/python3/Config.in
Normal file
@@ -0,0 +1,115 @@
|
||||
comment "python3 needs a toolchain w/ wchar, threads, dynamic library"
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
|
||||
|
||||
config BR2_PACKAGE_PYTHON3
|
||||
bool "python3"
|
||||
depends on !BR2_PACKAGE_PYTHON
|
||||
depends on BR2_USE_WCHAR
|
||||
# uses fork()
|
||||
depends on BR2_USE_MMU
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS # libffi
|
||||
depends on !BR2_STATIC_LIBS
|
||||
select BR2_PACKAGE_LIBFFI
|
||||
help
|
||||
The python language interpreter.
|
||||
|
||||
http://www.python.org/
|
||||
|
||||
if BR2_PACKAGE_PYTHON3
|
||||
|
||||
choice
|
||||
prompt "python3 module format to install"
|
||||
default BR2_PACKAGE_PYTHON3_PYC_ONLY
|
||||
help
|
||||
Select Python module format to install on target (py, pyc or both)
|
||||
|
||||
config BR2_PACKAGE_PYTHON3_PY_ONLY
|
||||
bool ".py sources only"
|
||||
|
||||
config BR2_PACKAGE_PYTHON3_PYC_ONLY
|
||||
bool ".pyc compiled sources only"
|
||||
|
||||
config BR2_PACKAGE_PYTHON3_PY_PYC
|
||||
bool ".py sources and .pyc compiled"
|
||||
|
||||
endchoice
|
||||
|
||||
menu "core python3 modules"
|
||||
|
||||
comment "The following modules are unusual or require extra libraries"
|
||||
|
||||
config BR2_PACKAGE_PYTHON3_BZIP2
|
||||
bool "bz2 module"
|
||||
select BR2_PACKAGE_BZIP2
|
||||
help
|
||||
bzip2 module for Python3
|
||||
|
||||
config BR2_PACKAGE_PYTHON3_CODECSCJK
|
||||
bool "codecscjk module"
|
||||
help
|
||||
Chinese/Japanese/Korean codecs module for Python (large).
|
||||
|
||||
config BR2_PACKAGE_PYTHON3_CURSES
|
||||
bool "curses module"
|
||||
select BR2_PACKAGE_NCURSES
|
||||
help
|
||||
curses module for Python3.
|
||||
|
||||
config BR2_PACKAGE_PYTHON3_DECIMAL
|
||||
bool "decimal module"
|
||||
select BR2_PACKAGE_MPDECIMAL
|
||||
help
|
||||
decimal module for Python3.
|
||||
|
||||
config BR2_PACKAGE_PYTHON3_OSSAUDIODEV
|
||||
bool "ossaudiodev module"
|
||||
help
|
||||
ossaudiodev module for Python3.
|
||||
|
||||
config BR2_PACKAGE_PYTHON3_READLINE
|
||||
bool "readline"
|
||||
select BR2_PACKAGE_READLINE
|
||||
help
|
||||
readline module for Python3 (required for command-line
|
||||
editing in the Python shell).
|
||||
|
||||
config BR2_PACKAGE_PYTHON3_SSL
|
||||
bool "ssl"
|
||||
select BR2_PACKAGE_OPENSSL
|
||||
help
|
||||
_ssl module for Python3 (required for https in urllib etc).
|
||||
|
||||
config BR2_PACKAGE_PYTHON3_UNICODEDATA
|
||||
bool "unicodedata module"
|
||||
default y
|
||||
help
|
||||
Unicode character database (used by stringprep module) (large).
|
||||
|
||||
config BR2_PACKAGE_PYTHON3_SQLITE
|
||||
bool "sqlite module"
|
||||
select BR2_PACKAGE_SQLITE
|
||||
help
|
||||
SQLite database support
|
||||
|
||||
config BR2_PACKAGE_PYTHON3_PYEXPAT
|
||||
bool "xml module"
|
||||
select BR2_PACKAGE_EXPAT
|
||||
help
|
||||
pyexpat and xml libraries for Python3.
|
||||
|
||||
config BR2_PACKAGE_PYTHON3_XZ
|
||||
bool "xz module"
|
||||
select BR2_PACKAGE_XZ
|
||||
help
|
||||
xz (a.k.a lzma) module for Python3
|
||||
|
||||
config BR2_PACKAGE_PYTHON3_ZLIB
|
||||
bool "zlib module"
|
||||
select BR2_PACKAGE_ZLIB
|
||||
help
|
||||
zlib support in Python3
|
||||
|
||||
endmenu
|
||||
|
||||
endif
|
||||
4
bsp/buildroot-2017.02.11/package/python3/python3.hash
Normal file
4
bsp/buildroot-2017.02.11/package/python3/python3.hash
Normal file
@@ -0,0 +1,4 @@
|
||||
# From https://www.python.org/downloads/release/python-352/
|
||||
md5 8906efbacfcdc7c3c9198aeefafd159e Python-3.5.2.tar.xz
|
||||
# Locally computed
|
||||
sha256 0010f56100b9b74259ebcd5d4b295a32324b58b517403a10d1a2aa7cb22bca40 Python-3.5.2.tar.xz
|
||||
266
bsp/buildroot-2017.02.11/package/python3/python3.mk
Normal file
266
bsp/buildroot-2017.02.11/package/python3/python3.mk
Normal file
@@ -0,0 +1,266 @@
|
||||
################################################################################
|
||||
#
|
||||
# python3
|
||||
#
|
||||
################################################################################
|
||||
|
||||
PYTHON3_VERSION_MAJOR = 3.5
|
||||
PYTHON3_VERSION = $(PYTHON3_VERSION_MAJOR).2
|
||||
PYTHON3_SOURCE = Python-$(PYTHON3_VERSION).tar.xz
|
||||
PYTHON3_SITE = http://python.org/ftp/python/$(PYTHON3_VERSION)
|
||||
PYTHON3_LICENSE = Python software foundation license v2, others
|
||||
PYTHON3_LICENSE_FILES = LICENSE
|
||||
|
||||
# Python itself doesn't use libtool, but it includes the source code
|
||||
# of libffi, which uses libtool. Unfortunately, it uses a beta version
|
||||
# of libtool for which we don't have a matching patch. However, this
|
||||
# is not a problem, because we don't use the libffi copy included in
|
||||
# the Python sources, but instead use an external libffi library.
|
||||
PYTHON3_LIBTOOL_PATCH = NO
|
||||
|
||||
# Python needs itself and a "pgen" program to build itself, both being
|
||||
# provided in the Python sources. So in order to cross-compile Python,
|
||||
# we need to build a host Python first. This host Python is also
|
||||
# installed in $(HOST_DIR), as it is needed when cross-compiling
|
||||
# third-party Python modules.
|
||||
|
||||
HOST_PYTHON3_CONF_OPTS += \
|
||||
--without-ensurepip \
|
||||
--without-cxx-main \
|
||||
--disable-sqlite3 \
|
||||
--disable-tk \
|
||||
--with-expat=system \
|
||||
--disable-curses \
|
||||
--disable-codecs-cjk \
|
||||
--disable-nis \
|
||||
--enable-unicodedata \
|
||||
--disable-test-modules \
|
||||
--disable-idle3 \
|
||||
--disable-ossaudiodev \
|
||||
--disable-openssl
|
||||
|
||||
# Make sure that LD_LIBRARY_PATH overrides -rpath.
|
||||
# This is needed because libpython may be installed at the same time that
|
||||
# python is called.
|
||||
# Make python believe we don't have 'hg', so that it doesn't try to
|
||||
# communicate over the network during the build.
|
||||
HOST_PYTHON3_CONF_ENV += \
|
||||
LDFLAGS="$(HOST_LDFLAGS) -Wl,--enable-new-dtags" \
|
||||
ac_cv_prog_HAS_HG=/bin/false
|
||||
|
||||
PYTHON3_DEPENDENCIES = host-python3 libffi
|
||||
|
||||
HOST_PYTHON3_DEPENDENCIES = host-expat host-zlib
|
||||
|
||||
PYTHON3_INSTALL_STAGING = YES
|
||||
|
||||
ifeq ($(BR2_PACKAGE_PYTHON3_READLINE),y)
|
||||
PYTHON3_DEPENDENCIES += readline
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_PYTHON3_CURSES),y)
|
||||
PYTHON3_DEPENDENCIES += ncurses
|
||||
else
|
||||
PYTHON3_CONF_OPTS += --disable-curses
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_PYTHON3_DECIMAL),y)
|
||||
PYTHON3_DEPENDENCIES += mpdecimal
|
||||
PYTHON3_CONF_OPTS += --with-libmpdec=system
|
||||
else
|
||||
PYTHON3_CONF_OPTS += --with-libmpdec=none
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_PYTHON3_PYEXPAT),y)
|
||||
PYTHON3_DEPENDENCIES += expat
|
||||
PYTHON3_CONF_OPTS += --with-expat=system
|
||||
else
|
||||
PYTHON3_CONF_OPTS += --with-expat=none
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_PYTHON3_PYC_ONLY),y)
|
||||
PYTHON3_CONF_OPTS += --enable-old-stdlib-cache
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_PYTHON3_SQLITE),y)
|
||||
PYTHON3_DEPENDENCIES += sqlite
|
||||
else
|
||||
PYTHON3_CONF_OPTS += --disable-sqlite3
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_PYTHON3_SSL),y)
|
||||
PYTHON3_DEPENDENCIES += openssl
|
||||
endif
|
||||
|
||||
ifneq ($(BR2_PACKAGE_PYTHON3_CODECSCJK),y)
|
||||
PYTHON3_CONF_OPTS += --disable-codecs-cjk
|
||||
endif
|
||||
|
||||
ifneq ($(BR2_PACKAGE_PYTHON3_UNICODEDATA),y)
|
||||
PYTHON3_CONF_OPTS += --disable-unicodedata
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_PYTHON3_BZIP2),y)
|
||||
PYTHON3_DEPENDENCIES += bzip2
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_PYTHON3_XZ),y)
|
||||
PYTHON3_DEPENDENCIES += xz
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_PYTHON3_ZLIB),y)
|
||||
PYTHON3_DEPENDENCIES += zlib
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_PYTHON3_OSSAUDIODEV),y)
|
||||
PYTHON3_CONF_OPTS += --enable-ossaudiodev
|
||||
else
|
||||
PYTHON3_CONF_OPTS += --disable-ossaudiodev
|
||||
endif
|
||||
|
||||
# Make python believe we don't have 'hg', so that it doesn't try to
|
||||
# communicate over the network during the build.
|
||||
PYTHON3_CONF_ENV += \
|
||||
ac_cv_have_long_long_format=yes \
|
||||
ac_cv_file__dev_ptmx=yes \
|
||||
ac_cv_file__dev_ptc=yes \
|
||||
ac_cv_working_tzset=yes \
|
||||
ac_cv_prog_HAS_HG=/bin/false
|
||||
|
||||
# GCC is always compliant with IEEE754
|
||||
ifeq ($(BR2_ENDIAN),"LITTLE")
|
||||
PYTHON3_CONF_ENV += ac_cv_little_endian_double=yes
|
||||
else
|
||||
PYTHON3_CONF_ENV += ac_cv_big_endian_double=yes
|
||||
endif
|
||||
|
||||
# uClibc is known to have a broken wcsftime() implementation, so tell
|
||||
# Python 3 to fall back to strftime() instead.
|
||||
ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
|
||||
PYTHON3_CONF_ENV += ac_cv_func_wcsftime=no
|
||||
endif
|
||||
|
||||
PYTHON3_CONF_OPTS += \
|
||||
--without-ensurepip \
|
||||
--without-cxx-main \
|
||||
--with-system-ffi \
|
||||
--disable-pydoc \
|
||||
--disable-test-modules \
|
||||
--disable-lib2to3 \
|
||||
--disable-tk \
|
||||
--disable-nis \
|
||||
--disable-idle3 \
|
||||
--disable-pyc-build
|
||||
|
||||
# Python builds two tools to generate code: 'pgen' and
|
||||
# '_freeze_importlib'. Unfortunately, for the target Python, they are
|
||||
# built for the target, while we need to run them at build time. So
|
||||
# when installing host-python, we copy them to
|
||||
# $(HOST_DIR)/usr/bin. And then, when building the target python
|
||||
# package, we tell the configure script where they are located.
|
||||
define HOST_PYTHON3_INSTALL_TOOLS
|
||||
cp $(@D)/Parser/pgen $(HOST_DIR)/usr/bin/python-pgen
|
||||
cp $(@D)/Programs/_freeze_importlib $(HOST_DIR)/usr/bin/python-freeze-importlib
|
||||
endef
|
||||
HOST_PYTHON3_POST_INSTALL_HOOKS += HOST_PYTHON3_INSTALL_TOOLS
|
||||
|
||||
PYTHON3_CONF_ENV += \
|
||||
PGEN_FOR_BUILD=$(HOST_DIR)/usr/bin/python-pgen \
|
||||
FREEZE_IMPORTLIB_FOR_BUILD=$(HOST_DIR)/usr/bin/python-freeze-importlib
|
||||
|
||||
#
|
||||
# Remove useless files. In the config/ directory, only the Makefile
|
||||
# and the pyconfig.h files are needed at runtime.
|
||||
#
|
||||
define PYTHON3_REMOVE_USELESS_FILES
|
||||
rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR)-config
|
||||
rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR)m-config
|
||||
rm -f $(TARGET_DIR)/usr/bin/python3-config
|
||||
rm -f $(TARGET_DIR)/usr/bin/smtpd.py.3
|
||||
for i in `find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-$(PYTHON3_VERSION_MAJOR)m/ \
|
||||
-type f -not -name pyconfig.h -a -not -name Makefile` ; do \
|
||||
rm -f $$i ; \
|
||||
done
|
||||
rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/__pycache__/
|
||||
rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/lib-dynload/sysconfigdata/__pycache__
|
||||
rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/collections/__pycache__
|
||||
rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/importlib/__pycache__
|
||||
endef
|
||||
|
||||
PYTHON3_POST_INSTALL_TARGET_HOOKS += PYTHON3_REMOVE_USELESS_FILES
|
||||
|
||||
#
|
||||
# Make sure libpython gets stripped out on target
|
||||
#
|
||||
define PYTHON3_ENSURE_LIBPYTHON_STRIPPED
|
||||
chmod u+w $(TARGET_DIR)/usr/lib/libpython$(PYTHON3_VERSION_MAJOR)*.so
|
||||
endef
|
||||
|
||||
PYTHON3_POST_INSTALL_TARGET_HOOKS += PYTHON3_ENSURE_LIBPYTHON_STRIPPED
|
||||
|
||||
PYTHON3_AUTORECONF = YES
|
||||
|
||||
define PYTHON3_INSTALL_SYMLINK
|
||||
ln -fs python3 $(TARGET_DIR)/usr/bin/python
|
||||
endef
|
||||
|
||||
ifneq ($(BR2_PACKAGE_PYTHON),y)
|
||||
PYTHON3_POST_INSTALL_TARGET_HOOKS += PYTHON3_INSTALL_SYMLINK
|
||||
endif
|
||||
|
||||
# Some packages may have build scripts requiring python3, whatever is the
|
||||
# python version chosen for the target.
|
||||
# Only install the python symlink in the host tree if python3 is enabled
|
||||
# for the target.
|
||||
ifeq ($(BR2_PACKAGE_PYTHON3),y)
|
||||
define HOST_PYTHON3_INSTALL_SYMLINK
|
||||
ln -fs python3 $(HOST_DIR)/usr/bin/python
|
||||
ln -fs python3-config $(HOST_DIR)/usr/bin/python-config
|
||||
endef
|
||||
|
||||
HOST_PYTHON3_POST_INSTALL_HOOKS += HOST_PYTHON3_INSTALL_SYMLINK
|
||||
endif
|
||||
|
||||
# Provided to other packages
|
||||
PYTHON3_PATH = $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/sysconfigdata/:$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/
|
||||
|
||||
$(eval $(autotools-package))
|
||||
$(eval $(host-autotools-package))
|
||||
|
||||
define PYTHON3_CREATE_PYC_FILES
|
||||
PYTHONPATH="$(PYTHON3_PATH)" \
|
||||
$(HOST_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR) \
|
||||
support/scripts/pycompile.py \
|
||||
$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)
|
||||
endef
|
||||
|
||||
ifeq ($(BR2_PACKAGE_PYTHON3_PYC_ONLY)$(BR2_PACKAGE_PYTHON3_PY_PYC),y)
|
||||
PYTHON3_TARGET_FINALIZE_HOOKS += PYTHON3_CREATE_PYC_FILES
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_PYTHON3_PYC_ONLY),y)
|
||||
define PYTHON3_REMOVE_PY_FILES
|
||||
find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR) -name '*.py' -print0 | \
|
||||
xargs -0 --no-run-if-empty rm -f
|
||||
endef
|
||||
PYTHON3_TARGET_FINALIZE_HOOKS += PYTHON3_REMOVE_PY_FILES
|
||||
endif
|
||||
|
||||
# Normally, *.pyc files should not have been compiled, but just in
|
||||
# case, we make sure we remove all of them.
|
||||
ifeq ($(BR2_PACKAGE_PYTHON3_PY_ONLY),y)
|
||||
define PYTHON3_REMOVE_PYC_FILES
|
||||
find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR) -name '*.pyc' -print0 | \
|
||||
xargs -0 --no-run-if-empty rm -f
|
||||
endef
|
||||
PYTHON3_TARGET_FINALIZE_HOOKS += PYTHON3_REMOVE_PYC_FILES
|
||||
endif
|
||||
|
||||
# In all cases, we don't want to keep the optimized .opt-1.pyc and
|
||||
# .opt-2.pyc files, since they can't work without their non-optimized
|
||||
# variant.
|
||||
define PYTHON3_REMOVE_OPTIMIZED_PYC_FILES
|
||||
find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR) -name '*.opt-1.pyc' -print0 -o -name '*.opt-2.pyc' -print0 | \
|
||||
xargs -0 --no-run-if-empty rm -f
|
||||
endef
|
||||
PYTHON3_TARGET_FINALIZE_HOOKS += PYTHON3_REMOVE_OPTIMIZED_PYC_FILES
|
||||
Reference in New Issue
Block a user