mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-07-28 21:56:31 +00:00
Add python3 package
[Peter: s/python/python3/] Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
parent
a32fa707e5
commit
03c4d57f1d
@ -290,6 +290,7 @@ endif
|
|||||||
source "package/microperl/Config.in"
|
source "package/microperl/Config.in"
|
||||||
source "package/php/Config.in"
|
source "package/php/Config.in"
|
||||||
source "package/python/Config.in"
|
source "package/python/Config.in"
|
||||||
|
source "package/python3/Config.in"
|
||||||
if BR2_PACKAGE_PYTHON
|
if BR2_PACKAGE_PYTHON
|
||||||
menu "external python modules"
|
menu "external python modules"
|
||||||
source "package/python-dpkt/Config.in"
|
source "package/python-dpkt/Config.in"
|
||||||
|
81
package/python3/Config.in
Normal file
81
package/python3/Config.in
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
config BR2_PACKAGE_PYTHON3
|
||||||
|
bool "python3"
|
||||||
|
depends on BR2_USE_WCHAR
|
||||||
|
select BR2_PACKAGE_LIBFFI
|
||||||
|
help
|
||||||
|
The python language interpreter.
|
||||||
|
|
||||||
|
http://www.python.org/
|
||||||
|
|
||||||
|
comment "python3 requires a toolchain with WCHAR support"
|
||||||
|
depends on !BR2_USE_WCHAR
|
||||||
|
|
||||||
|
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
|
||||||
|
select BR2_PACKAGE_BZIP2
|
||||||
|
bool "bz2 module"
|
||||||
|
help
|
||||||
|
bzip2 module for Python3
|
||||||
|
|
||||||
|
config BR2_PACKAGE_PYTHON3_CURSES
|
||||||
|
select BR2_PACKAGE_NCURSES
|
||||||
|
bool "curses module"
|
||||||
|
help
|
||||||
|
curses module for Python3.
|
||||||
|
|
||||||
|
config BR2_PACKAGE_PYTHON3_PYEXPAT
|
||||||
|
select BR2_PACKAGE_EXPAT
|
||||||
|
bool "pyexpat"
|
||||||
|
help
|
||||||
|
pyexpat module for Python3.
|
||||||
|
|
||||||
|
config BR2_PACKAGE_PYTHON3_READLINE
|
||||||
|
select BR2_PACKAGE_READLINE
|
||||||
|
bool "readline"
|
||||||
|
help
|
||||||
|
readline module for Python3 (required for command-line
|
||||||
|
editing in the Python shell).
|
||||||
|
|
||||||
|
config BR2_PACKAGE_PYTHON3_SSL
|
||||||
|
select BR2_PACKAGE_OPENSSL
|
||||||
|
bool "ssl"
|
||||||
|
help
|
||||||
|
_ssl module for Python3 (required for https in urllib etc).
|
||||||
|
|
||||||
|
config BR2_PACKAGE_PYTHON3_SQLITE
|
||||||
|
bool "sqlite module"
|
||||||
|
select BR2_PACKAGE_SQLITE
|
||||||
|
help
|
||||||
|
SQLite database support
|
||||||
|
|
||||||
|
config BR2_PACKAGE_PYTHON3_ZLIB
|
||||||
|
bool "zlib module"
|
||||||
|
select BR2_PACKAGE_ZLIB
|
||||||
|
help
|
||||||
|
zlib support in Python3
|
||||||
|
|
||||||
|
endmenu
|
||||||
|
|
||||||
|
endif
|
@ -0,0 +1,158 @@
|
|||||||
|
changeset: 79745:f85c3f4d9b98
|
||||||
|
parent: 79743:36b2ca7dc893
|
||||||
|
parent: 79744:24d52d3060e8
|
||||||
|
user: Trent Nelson <trent@trent.me>
|
||||||
|
date: Tue Oct 16 08:17:11 2012 -0400
|
||||||
|
summary: Merge issue #15298: ensure _sysconfigdata is generated in build directory,
|
||||||
|
|
||||||
|
Taken from upstream.
|
||||||
|
|
||||||
|
---
|
||||||
|
Lib/sysconfig.py | 11 ++++++++++-
|
||||||
|
Makefile.pre.in | 24 +++++++++++++-----------
|
||||||
|
setup.py | 14 --------------
|
||||||
|
3 files changed, 23 insertions(+), 26 deletions(-)
|
||||||
|
|
||||||
|
Index: Python-3.3.0/Lib/sysconfig.py
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/Lib/sysconfig.py
|
||||||
|
+++ Python-3.3.0/Lib/sysconfig.py
|
||||||
|
@@ -390,13 +390,22 @@
|
||||||
|
if _PYTHON_BUILD:
|
||||||
|
vars['LDSHARED'] = vars['BLDSHARED']
|
||||||
|
|
||||||
|
- destfile = os.path.join(os.path.dirname(__file__), '_sysconfigdata.py')
|
||||||
|
+ pybuilddir = 'build/lib.%s-%s' % (get_platform(), sys.version[:3])
|
||||||
|
+ if hasattr(sys, "gettotalrefcount"):
|
||||||
|
+ pybuilddir += '-pydebug'
|
||||||
|
+ os.makedirs(pybuilddir, exist_ok=True)
|
||||||
|
+ destfile = os.path.join(pybuilddir, '_sysconfigdata.py')
|
||||||
|
+
|
||||||
|
with open(destfile, 'w', encoding='utf8') as f:
|
||||||
|
f.write('# system configuration generated and used by'
|
||||||
|
' the sysconfig module\n')
|
||||||
|
f.write('build_time_vars = ')
|
||||||
|
pprint.pprint(vars, stream=f)
|
||||||
|
|
||||||
|
+ # Create file used for sys.path fixup -- see Modules/getpath.c
|
||||||
|
+ with open('pybuilddir.txt', 'w', encoding='ascii') as f:
|
||||||
|
+ f.write(pybuilddir)
|
||||||
|
+
|
||||||
|
def _init_posix(vars):
|
||||||
|
"""Initialize the module as appropriate for POSIX systems."""
|
||||||
|
# _sysconfigdata is generated at build time, see _generate_posix_vars()
|
||||||
|
Index: Python-3.3.0/Makefile.pre.in
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/Makefile.pre.in
|
||||||
|
+++ Python-3.3.0/Makefile.pre.in
|
||||||
|
@@ -410,8 +410,6 @@
|
||||||
|
Objects/unicodectype.o \
|
||||||
|
Objects/weakrefobject.o
|
||||||
|
|
||||||
|
-SYSCONFIGDATA=$(srcdir)/Lib/_sysconfigdata.py
|
||||||
|
-
|
||||||
|
##########################################################################
|
||||||
|
# objects that get linked into the Python library
|
||||||
|
LIBRARY_OBJS_OMIT_FROZEN= \
|
||||||
|
@@ -432,7 +430,7 @@
|
||||||
|
|
||||||
|
# Default target
|
||||||
|
all: build_all
|
||||||
|
-build_all: $(BUILDPYTHON) $(SYSCONFIGDATA) oldsharedmods sharedmods gdbhooks Modules/_testembed
|
||||||
|
+build_all: $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks Modules/_testembed
|
||||||
|
|
||||||
|
# Compile a binary with gcc profile guided optimization.
|
||||||
|
profile-opt:
|
||||||
|
@@ -466,15 +464,17 @@
|
||||||
|
$(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
|
||||||
|
$(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Modules/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
|
||||||
|
|
||||||
|
-platform: $(BUILDPYTHON) $(SYSCONFIGDATA)
|
||||||
|
+platform: $(BUILDPYTHON)
|
||||||
|
$(RUNSHARED) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print(get_platform()+"-"+sys.version[0:3])' >platform
|
||||||
|
|
||||||
|
-# Generate the sysconfig build-time data
|
||||||
|
-$(SYSCONFIGDATA): $(BUILDPYTHON)
|
||||||
|
+# Create build directory and generate the sysconfig build-time data there.
|
||||||
|
+# pybuilddir.txt contains the name of the build dir and is used for
|
||||||
|
+# sys.path fixup -- see Modules/getpath.c.
|
||||||
|
+pybuilddir.txt: $(BUILDPYTHON)
|
||||||
|
$(RUNSHARED) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars
|
||||||
|
|
||||||
|
# Build the shared modules
|
||||||
|
-sharedmods: $(BUILDPYTHON) $(SYSCONFIGDATA)
|
||||||
|
+sharedmods: $(BUILDPYTHON) pybuilddir.txt
|
||||||
|
case $$MAKEFLAGS in *s*) quiet=-q; esac; \
|
||||||
|
$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
|
||||||
|
$(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
|
||||||
|
@@ -1036,7 +1036,7 @@
|
||||||
|
else true; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
- @for i in $(srcdir)/Lib/*.py ; \
|
||||||
|
+ @for i in $(srcdir)/Lib/*.py `cat pybuilddir.txt`/_sysconfigdata.py; \
|
||||||
|
do \
|
||||||
|
if test -x $$i; then \
|
||||||
|
$(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \
|
||||||
|
@@ -1196,6 +1196,8 @@
|
||||||
|
--install-scripts=$(BINDIR) \
|
||||||
|
--install-platlib=$(DESTSHARED) \
|
||||||
|
--root=$(DESTDIR)/
|
||||||
|
+ -rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata.py
|
||||||
|
+ -rm -r $(DESTDIR)$(DESTSHARED)/__pycache__
|
||||||
|
|
||||||
|
# Here are a couple of targets for MacOSX again, to install a full
|
||||||
|
# framework-based Python. frameworkinstall installs everything, the
|
||||||
|
@@ -1341,9 +1343,10 @@
|
||||||
|
find . -name '*.s[ol]' -exec rm -f {} ';'
|
||||||
|
find . -name '*.so.[0-9]*.[0-9]*' -exec rm -f {} ';'
|
||||||
|
find build -name 'fficonfig.h' -exec rm -f {} ';' || true
|
||||||
|
- find build -name 'fficonfig.py' -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 Lib/lib2to3/*Grammar*.pickle
|
||||||
|
- -rm -f $(SYSCONFIGDATA)
|
||||||
|
-rm -f Modules/_testembed Modules/_freeze_importlib
|
||||||
|
|
||||||
|
profile-removal:
|
||||||
|
@@ -1367,7 +1370,6 @@
|
||||||
|
Modules/Setup Modules/Setup.local Modules/Setup.config \
|
||||||
|
Modules/ld_so_aix Modules/python.exp Misc/python.pc
|
||||||
|
-rm -f python*-gdb.py
|
||||||
|
- -rm -f pybuilddir.txt
|
||||||
|
find $(srcdir) '(' -name '*.fdc' -o -name '*~' \
|
||||||
|
-o -name '[@,#]*' -o -name '*.old' \
|
||||||
|
-o -name '*.orig' -o -name '*.rej' \
|
||||||
|
Index: Python-3.3.0/setup.py
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/setup.py
|
||||||
|
+++ Python-3.3.0/setup.py
|
||||||
|
@@ -33,10 +33,6 @@
|
||||||
|
# This global variable is used to hold the list of modules to be disabled.
|
||||||
|
disabled_module_list = []
|
||||||
|
|
||||||
|
-# File which contains the directory for shared mods (for sys.path fixup
|
||||||
|
-# when running from the build dir, see Modules/getpath.c)
|
||||||
|
-_BUILDDIR_COOKIE = "pybuilddir.txt"
|
||||||
|
-
|
||||||
|
def add_dir_to_list(dirlist, dir):
|
||||||
|
"""Add the directory 'dir' to the list 'dirlist' (after any relative
|
||||||
|
directories) if:
|
||||||
|
@@ -252,16 +248,6 @@
|
||||||
|
args['compiler_so'] = compiler + ' ' + ccshared + ' ' + cflags
|
||||||
|
self.compiler.set_executables(**args)
|
||||||
|
|
||||||
|
- # Not only do we write the builddir cookie, but we manually install
|
||||||
|
- # the shared modules directory if it isn't already in sys.path.
|
||||||
|
- # Otherwise trying to import the extensions after building them
|
||||||
|
- # will fail.
|
||||||
|
- with open(_BUILDDIR_COOKIE, "wb") as f:
|
||||||
|
- f.write(self.build_lib.encode('utf-8', 'surrogateescape'))
|
||||||
|
- abs_build_lib = os.path.join(os.getcwd(), self.build_lib)
|
||||||
|
- if abs_build_lib not in sys.path:
|
||||||
|
- sys.path.append(abs_build_lib)
|
||||||
|
-
|
||||||
|
build_ext.build_extensions(self)
|
||||||
|
|
||||||
|
longest = max([len(e.name) for e in self.extensions])
|
68
package/python3/python3-3.3-001-support-for-build.patch
Normal file
68
package/python3/python3-3.3-001-support-for-build.patch
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
Add support in Python build system to specify host pgen
|
||||||
|
|
||||||
|
Python needs a "pgen" program to build itself. Unfortunately, the
|
||||||
|
Python build system assumes that it can use the pgen program it has
|
||||||
|
just built to build itself. Obviously, this cannot work in
|
||||||
|
cross-compilation mode since the pgen program have been built for the
|
||||||
|
target.
|
||||||
|
|
||||||
|
Therefore, this patch adds support in the Python build system for the
|
||||||
|
new PGEN_FOR_BUILD variable, so that we can point Python ./configure
|
||||||
|
script to the pgen program that have been previously built for the
|
||||||
|
host.
|
||||||
|
|
||||||
|
Patch ported to python2.7 by Maxime Ripard <ripard@archos.com>, and
|
||||||
|
later significantly reworked by Thomas Petazzoni
|
||||||
|
<thomas.petazzoni@free-electrons.com>, with some inspiration taken
|
||||||
|
from the Python patches of the PTXdist project, and then ported to
|
||||||
|
python3.3 by Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||||
|
|
||||||
|
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||||
|
---
|
||||||
|
Makefile.pre.in | 5 +++--
|
||||||
|
configure.ac | 5 +++++
|
||||||
|
2 files changed, 8 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
Index: Python-3.3.0/Makefile.pre.in
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/Makefile.pre.in
|
||||||
|
+++ Python-3.3.0/Makefile.pre.in
|
||||||
|
@@ -239,6 +239,7 @@
|
||||||
|
##########################################################################
|
||||||
|
# Parser
|
||||||
|
PGEN= Parser/pgen$(EXE)
|
||||||
|
+PGEN_FOR_BUILD=@PGEN_FOR_BUILD@
|
||||||
|
|
||||||
|
PSRCS= \
|
||||||
|
Parser/acceler.c \
|
||||||
|
@@ -639,8 +640,8 @@
|
||||||
|
|
||||||
|
$(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGENSRCS)
|
||||||
|
@$(MKDIR_P) Include
|
||||||
|
- $(MAKE) $(PGEN)
|
||||||
|
- $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
|
||||||
|
+ $(MAKE) $(PGEN_FOR_BUILD)
|
||||||
|
+ $(PGEN_FOR_BUILD) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
|
||||||
|
$(GRAMMAR_C): $(GRAMMAR_H) $(GRAMMAR_INPUT) $(PGENSRCS)
|
||||||
|
$(MAKE) $(GRAMMAR_H)
|
||||||
|
touch $(GRAMMAR_C)
|
||||||
|
Index: Python-3.3.0/configure.ac
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/configure.ac
|
||||||
|
+++ Python-3.3.0/configure.ac
|
||||||
|
@@ -51,10 +51,15 @@
|
||||||
|
AC_MSG_RESULT($interp)
|
||||||
|
PYTHON_FOR_BUILD="_PYTHON_PROJECT_BASE=$srcdir"' _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(srcdir)/Lib:$(srcdir)/Lib/plat-$(MACHDEP) '$interp
|
||||||
|
fi
|
||||||
|
+ AC_MSG_CHECKING(pgen for build)
|
||||||
|
+ PGEN_FOR_BUILD="${PGEN_FOR_BUILD}"
|
||||||
|
+ AC_MSG_RESULT($PGEN_FOR_BUILD)
|
||||||
|
else
|
||||||
|
PYTHON_FOR_BUILD='./$(BUILDPYTHON) -E'
|
||||||
|
+ PGEN_FOR_BUILD='./$(PGEN)'
|
||||||
|
fi
|
||||||
|
AC_SUBST(PYTHON_FOR_BUILD)
|
||||||
|
+AC_SUBST(PGEN_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
|
72
package/python3/python3-3.3-002-no-host-headers-libs.patch
Normal file
72
package/python3/python3-3.3-002-no-host-headers-libs.patch
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
Do not look at host headers/libraries in cross-compile mode
|
||||||
|
|
||||||
|
When we are cross-compiling, setup.py should never look in /usr or
|
||||||
|
/usr/local to find headers or libraries. A later patch adds a
|
||||||
|
mechanism to tell setup.py to look in a specific directory for headers
|
||||||
|
and libraries.
|
||||||
|
|
||||||
|
Patch first written by Thomas Petazzoni
|
||||||
|
<thomas.petazzoni@free-electrons.com> for python2.7, and then ported
|
||||||
|
to python3.3 by Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||||
|
|
||||||
|
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||||
|
---
|
||||||
|
setup.py | 23 +++++------------------
|
||||||
|
1 file changed, 5 insertions(+), 18 deletions(-)
|
||||||
|
|
||||||
|
Index: Python-3.3.0/setup.py
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/setup.py
|
||||||
|
+++ Python-3.3.0/setup.py
|
||||||
|
@@ -447,10 +447,8 @@
|
||||||
|
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')
|
||||||
|
- # only change this for cross builds for 3.3, issues on Mageia
|
||||||
|
- if cross_compiling:
|
||||||
|
self.add_gcc_paths()
|
||||||
|
- self.add_multiarch_paths()
|
||||||
|
+ self.add_multiarch_paths()
|
||||||
|
|
||||||
|
# Add paths specified in the environment variables LDFLAGS and
|
||||||
|
# CPPFLAGS for header and library files.
|
||||||
|
@@ -458,10 +456,7 @@
|
||||||
|
# directly since an inconsistently reproducible issue comes up where
|
||||||
|
# the environment variable is not set even though the value were passed
|
||||||
|
# into configure and stored in the Makefile (issue found on OS X 10.3).
|
||||||
|
- for env_var, arg_name, dir_list in (
|
||||||
|
- ('LDFLAGS', '-R', self.compiler.runtime_library_dirs),
|
||||||
|
- ('LDFLAGS', '-L', self.compiler.library_dirs),
|
||||||
|
- ('CPPFLAGS', '-I', self.compiler.include_dirs)):
|
||||||
|
+ for env_var, arg_name, dir_list in ():
|
||||||
|
env_val = sysconfig.get_config_var(env_var)
|
||||||
|
if env_val:
|
||||||
|
# To prevent optparse from raising an exception about any
|
||||||
|
@@ -486,17 +481,6 @@
|
||||||
|
for directory in reversed(options.dirs):
|
||||||
|
add_dir_to_list(dir_list, directory)
|
||||||
|
|
||||||
|
- if os.path.normpath(sys.base_prefix) != '/usr' \
|
||||||
|
- and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
|
||||||
|
- # 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
|
||||||
|
- # the one that is currently installed (issue #7473)
|
||||||
|
- add_dir_to_list(self.compiler.library_dirs,
|
||||||
|
- sysconfig.get_config_var("LIBDIR"))
|
||||||
|
- add_dir_to_list(self.compiler.include_dirs,
|
||||||
|
- sysconfig.get_config_var("INCLUDEDIR"))
|
||||||
|
-
|
||||||
|
# lib_dirs and inc_dirs are used to search for files;
|
||||||
|
# if a file is found in one of those directories, it can
|
||||||
|
# be assumed that no additional -I,-L directives are needed.
|
||||||
|
@@ -506,6 +490,9 @@
|
||||||
|
'/lib', '/usr/lib',
|
||||||
|
]
|
||||||
|
inc_dirs = self.compiler.include_dirs + ['/usr/include']
|
||||||
|
+ else:
|
||||||
|
+ lib_dirs = self.compiler.library_dirs
|
||||||
|
+ inc_dirs = self.compiler.include_dirs
|
||||||
|
exts = []
|
||||||
|
missing = []
|
||||||
|
|
41
package/python3/python3-3.3-003-staging-header-libs.patch
Normal file
41
package/python3/python3-3.3-003-staging-header-libs.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
Tell setup.py the location of headers/libraries
|
||||||
|
|
||||||
|
Allow the libraries detection routine to look for headers and libs in
|
||||||
|
other directories than /usr/include or /usr/lib through the
|
||||||
|
environment variables PYTHON_MODULES_INCLUDE and PYTHON_MODULES_LIB.
|
||||||
|
|
||||||
|
We can then use it to look for libraries in the buildroot staging
|
||||||
|
directory.
|
||||||
|
|
||||||
|
Ported to python3.3 by Maxime Ripard <maxime.ripard@free-electrons.com> based
|
||||||
|
on the work by Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||||
|
|
||||||
|
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||||
|
---
|
||||||
|
setup.py | 13 +++++++++++++
|
||||||
|
1 file changed, 13 insertions(+)
|
||||||
|
|
||||||
|
Index: Python-3.3.0/setup.py
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/setup.py
|
||||||
|
+++ Python-3.3.0/setup.py
|
||||||
|
@@ -441,6 +441,19 @@
|
||||||
|
os.unlink(tmpfile)
|
||||||
|
|
||||||
|
def detect_modules(self):
|
||||||
|
+ try:
|
||||||
|
+ modules_include_dirs = os.environ["PYTHON_MODULES_INCLUDE"].split()
|
||||||
|
+ except KeyError:
|
||||||
|
+ modules_include_dirs = ['/usr/include']
|
||||||
|
+ try:
|
||||||
|
+ modules_lib_dirs = os.environ["PYTHON_MODULES_LIB"].split()
|
||||||
|
+ except KeyError:
|
||||||
|
+ modules_lib_dirs = ['/usr/lib']
|
||||||
|
+ for dir in modules_include_dirs:
|
||||||
|
+ add_dir_to_list(self.compiler.include_dirs, dir)
|
||||||
|
+ for dir in modules_lib_dirs:
|
||||||
|
+ add_dir_to_list(self.compiler.library_dirs, dir)
|
||||||
|
+
|
||||||
|
# Ensure that /usr/local is always used, but the local build
|
||||||
|
# directories (i.e. '.' and 'Include') must be first. See issue
|
||||||
|
# 10520.
|
@ -0,0 +1,27 @@
|
|||||||
|
Disable import check when cross-compiling
|
||||||
|
|
||||||
|
Once Python has compiled an extension (i.e some C code, potentially
|
||||||
|
linked to a library), it tries to import it. This cannot work in
|
||||||
|
cross-compilation mode, so we just disable this check.
|
||||||
|
|
||||||
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||||
|
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||||
|
---
|
||||||
|
setup.py | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
Index: Python-3.3.0/setup.py
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/setup.py
|
||||||
|
+++ Python-3.3.0/setup.py
|
||||||
|
@@ -318,6 +318,10 @@
|
||||||
|
self.announce('WARNING: skipping import check for Cygwin-based "%s"'
|
||||||
|
% ext.name)
|
||||||
|
return
|
||||||
|
+ if os.environ.get('CROSS_COMPILING') == 'yes':
|
||||||
|
+ self.announce('WARNING: skipping import check for cross compiled "%s"'
|
||||||
|
+ % ext.name)
|
||||||
|
+ return
|
||||||
|
ext_filename = os.path.join(
|
||||||
|
self.build_lib,
|
||||||
|
self.get_ext_filename(self.get_ext_fullname(ext.name)))
|
@ -0,0 +1,40 @@
|
|||||||
|
Do not generate .pyo files
|
||||||
|
|
||||||
|
By default, the Python installation byte-compiles all modules in two
|
||||||
|
forms: the normal bytecode (.pyc) and an optimized bytecode (.pyo).
|
||||||
|
|
||||||
|
According to
|
||||||
|
http://www.network-theory.co.uk/docs/pytut/CompiledPythonfiles.html,
|
||||||
|
the optimization do not do anything useful, and generating both the
|
||||||
|
"non-optimized" and "optimized" bytecode variants takes time.
|
||||||
|
|
||||||
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||||
|
---
|
||||||
|
Makefile.pre.in | 9 ---------
|
||||||
|
1 file changed, 9 deletions(-)
|
||||||
|
|
||||||
|
Index: Python-3.3.0/Makefile.pre.in
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/Makefile.pre.in
|
||||||
|
+++ Python-3.3.0/Makefile.pre.in
|
||||||
|
@@ -1082,20 +1082,11 @@
|
||||||
|
-d $(LIBDEST) -f \
|
||||||
|
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
|
||||||
|
$(DESTDIR)$(LIBDEST)
|
||||||
|
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||||
|
- $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||||
|
- -d $(LIBDEST) -f \
|
||||||
|
- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
|
||||||
|
- $(DESTDIR)$(LIBDEST)
|
||||||
|
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||||
|
$(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||||
|
-d $(LIBDEST)/site-packages -f \
|
||||||
|
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
|
||||||
|
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||||
|
- $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||||
|
- -d $(LIBDEST)/site-packages -f \
|
||||||
|
- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
|
||||||
|
- -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
|
63
package/python3/python3-3.3-006-reread-environment.patch
Normal file
63
package/python3/python3-3.3-006-reread-environment.patch
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
Make sure setup.py reads the correct CONFIG_ARGS
|
||||||
|
|
||||||
|
The setup.py script that builds and installs all the Python modules
|
||||||
|
shipped with the interpreter looks at the CONFIG_ARGS variable stored
|
||||||
|
in the "sysconfig" module to look at the ./configure options and
|
||||||
|
adjust its behaviour accordingly.
|
||||||
|
|
||||||
|
Unfortunately, when cross-compiling, the value of CONFIG_ARGS returned
|
||||||
|
by the sysconfig are the one passed to the ./configure script of the
|
||||||
|
*host* Python and not the one we're currently building for the target.
|
||||||
|
|
||||||
|
In order to avoid that, we re-initialize the values in the sysconfig
|
||||||
|
module by re-reading the environment at the beginning of the setup.py
|
||||||
|
script, and we make sure that the CONFIG_ARGS variable is actually
|
||||||
|
part of the environment of setup.py.
|
||||||
|
|
||||||
|
See the beginning of
|
||||||
|
http://article.gmane.org/gmane.comp.python.devel/99772 for the
|
||||||
|
inspiration.
|
||||||
|
|
||||||
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
Makefile.pre.in | 4 +++-
|
||||||
|
setup.py | 3 +++
|
||||||
|
2 files changed, 6 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
Index: Python-3.3.0/setup.py
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/setup.py
|
||||||
|
+++ Python-3.3.0/setup.py
|
||||||
|
@@ -30,6 +30,9 @@
|
||||||
|
# Were we compiled --with-pydebug or with #define Py_DEBUG?
|
||||||
|
COMPILED_WITH_PYDEBUG = ('--with-pydebug' in sysconfig.get_config_var("CONFIG_ARGS"))
|
||||||
|
|
||||||
|
+sysconfig.get_config_vars()
|
||||||
|
+sysconfig._CONFIG_VARS.update(os.environ)
|
||||||
|
+
|
||||||
|
# This global variable is used to hold the list of modules to be disabled.
|
||||||
|
disabled_module_list = []
|
||||||
|
|
||||||
|
Index: Python-3.3.0/Makefile.pre.in
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/Makefile.pre.in
|
||||||
|
+++ Python-3.3.0/Makefile.pre.in
|
||||||
|
@@ -478,6 +478,7 @@
|
||||||
|
sharedmods: $(BUILDPYTHON) pybuilddir.txt
|
||||||
|
case $$MAKEFLAGS in *s*) quiet=-q; esac; \
|
||||||
|
$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
|
||||||
|
+ CONFIG_ARGS="$(CONFIG_ARGS)" \
|
||||||
|
$(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
|
||||||
|
|
||||||
|
# Build static library
|
||||||
|
@@ -1183,7 +1184,8 @@
|
||||||
|
# Install the dynamically loadable modules
|
||||||
|
# This goes into $(exec_prefix)
|
||||||
|
sharedinstall: sharedmods
|
||||||
|
- $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
|
||||||
|
+ $(RUNSHARED) CONFIG_ARGS="$(CONFIG_ARGS)" \
|
||||||
|
+ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
|
||||||
|
--prefix=$(prefix) \
|
||||||
|
--install-scripts=$(BINDIR) \
|
||||||
|
--install-platlib=$(DESTSHARED) \
|
@ -0,0 +1,76 @@
|
|||||||
|
Change the location of pyconfig.h
|
||||||
|
|
||||||
|
The Python interpreter has a really strange behaviour: at *runtime*,
|
||||||
|
it reads a Makefile and a header file named pyconfig.h to get some
|
||||||
|
information about the configuration.
|
||||||
|
|
||||||
|
The Makefile is located in usr/lib/python3.3/config-3.3m, which is fine
|
||||||
|
since this location is kept on the target.
|
||||||
|
|
||||||
|
However, by default, the pyconfig.h is installed in
|
||||||
|
usr/include/python3.3m, but we completely remove the usr/include
|
||||||
|
directory for the target. Since making an exception just for
|
||||||
|
pyconfig.h is annoying, this patch also installs pyconfig.h to
|
||||||
|
usr/lib/python3.3/config-3.3m, and modifies the sysconfig module so that it
|
||||||
|
looks in this location instead of usr/include.
|
||||||
|
|
||||||
|
The pyconfig.h is still kept in usr/include/python3.3m, because it is
|
||||||
|
needed in the $(STAGING_DIR) when building third-party Python
|
||||||
|
extensions that contain C code.
|
||||||
|
|
||||||
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
Lib/distutils/sysconfig.py | 3 ++-
|
||||||
|
Lib/sysconfig.py | 2 +-
|
||||||
|
Makefile.pre.in | 3 ++-
|
||||||
|
3 files changed, 5 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
Index: Python-3.3.0/Lib/distutils/sysconfig.py
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/Lib/distutils/sysconfig.py
|
||||||
|
+++ Python-3.3.0/Lib/distutils/sysconfig.py
|
||||||
|
@@ -239,7 +239,8 @@
|
||||||
|
else:
|
||||||
|
inc_dir = _sys_home or project_base
|
||||||
|
else:
|
||||||
|
- inc_dir = get_python_inc(plat_specific=1)
|
||||||
|
+ lib_dir = get_python_lib(plat_specific=1, standard_lib=1)
|
||||||
|
+ inc_dir = os.path.join(lib_dir, "config")
|
||||||
|
if get_python_version() < '2.2':
|
||||||
|
config_h = 'config.h'
|
||||||
|
else:
|
||||||
|
Index: Python-3.3.0/Lib/sysconfig.py
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/Lib/sysconfig.py
|
||||||
|
+++ Python-3.3.0/Lib/sysconfig.py
|
||||||
|
@@ -467,7 +467,7 @@
|
||||||
|
else:
|
||||||
|
inc_dir = _sys_home or _PROJECT_BASE
|
||||||
|
else:
|
||||||
|
- inc_dir = get_path('platinclude')
|
||||||
|
+ inc_dir = os.path.join(get_path('stdlib'), "config")
|
||||||
|
return os.path.join(inc_dir, 'pyconfig.h')
|
||||||
|
|
||||||
|
|
||||||
|
Index: Python-3.3.0/Makefile.pre.in
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/Makefile.pre.in
|
||||||
|
+++ Python-3.3.0/Makefile.pre.in
|
||||||
|
@@ -1123,7 +1123,6 @@
|
||||||
|
echo $(INSTALL_DATA) $$i $(INCLUDEPY); \
|
||||||
|
$(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY); \
|
||||||
|
done
|
||||||
|
- $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h
|
||||||
|
|
||||||
|
# Install the library and miscellaneous stuff needed for extending/embedding
|
||||||
|
# This goes into $(exec_prefix)
|
||||||
|
@@ -1157,6 +1156,8 @@
|
||||||
|
$(INSTALL_DATA) Modules/python.o $(DESTDIR)$(LIBPL)/python.o
|
||||||
|
$(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
|
||||||
|
$(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile
|
||||||
|
+ $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(LIBPL)/pyconfig.h
|
||||||
|
+ $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h
|
||||||
|
$(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup
|
||||||
|
$(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
|
||||||
|
$(INSTALL_DATA) Modules/Setup.config $(DESTDIR)$(LIBPL)/Setup.config
|
51
package/python3/python3-3.3-008-no-rpath.patch
Normal file
51
package/python3/python3-3.3-008-no-rpath.patch
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
Remove runtime library paths
|
||||||
|
|
||||||
|
For some extensions (sqlite and dbm), Python setup.py script
|
||||||
|
hardcode a runtime path (rpath) into the extension. However, this
|
||||||
|
runtime path is incorrect (because it points to the location of the
|
||||||
|
library directory on the development machine) and useless (because on
|
||||||
|
the target, all useful libraries are in a standard directory searched
|
||||||
|
by the dynamic loader). For those reasons, we just get rid of the
|
||||||
|
runtime paths in cross-compilation mode.
|
||||||
|
|
||||||
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||||
|
---
|
||||||
|
setup.py | 12 ++++++++++--
|
||||||
|
1 file changed, 10 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
Index: Python-3.3.0/setup.py
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/setup.py
|
||||||
|
+++ Python-3.3.0/setup.py
|
||||||
|
@@ -1134,11 +1134,15 @@
|
||||||
|
# can end up with a bad search path order.
|
||||||
|
if sqlite_incdir not in self.compiler.include_dirs:
|
||||||
|
include_dirs.append(sqlite_incdir)
|
||||||
|
+ if cross_compiling:
|
||||||
|
+ sqlite_runtime_libdir = None
|
||||||
|
+ else:
|
||||||
|
+ sqlite_runtime_libdir = sqlite_libdir
|
||||||
|
exts.append(Extension('_sqlite3', sqlite_srcs,
|
||||||
|
define_macros=sqlite_defines,
|
||||||
|
include_dirs=include_dirs,
|
||||||
|
library_dirs=sqlite_libdir,
|
||||||
|
- runtime_library_dirs=sqlite_libdir,
|
||||||
|
+ runtime_library_dirs=sqlite_runtime_libdir,
|
||||||
|
extra_link_args=sqlite_extra_link_args,
|
||||||
|
libraries=["sqlite3",]))
|
||||||
|
else:
|
||||||
|
@@ -1205,9 +1209,13 @@
|
||||||
|
elif cand == "bdb":
|
||||||
|
if db_incs is not None:
|
||||||
|
if dbm_setup_debug: print("building dbm using bdb")
|
||||||
|
+ if cross_compiling:
|
||||||
|
+ dblib_runtime_libdir = None
|
||||||
|
+ else:
|
||||||
|
+ dblib_runtime_libdir = dblib_dir
|
||||||
|
dbmext = Extension('_dbm', ['_dbmmodule.c'],
|
||||||
|
library_dirs=dblib_dir,
|
||||||
|
- runtime_library_dirs=dblib_dir,
|
||||||
|
+ runtime_library_dirs=dblib_runtime_libdir,
|
||||||
|
include_dirs=db_incs,
|
||||||
|
define_macros=[
|
||||||
|
('HAVE_BERKDB_H', None),
|
26
package/python3/python3-3.3-009-verbose-module-build.patch
Normal file
26
package/python3/python3-3.3-009-verbose-module-build.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
Enables verbose output when building modules
|
||||||
|
|
||||||
|
Patch borrowed from OpenBricks.
|
||||||
|
|
||||||
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
Makefile.pre.in | 3 +--
|
||||||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
Index: Python-3.3.0/Makefile.pre.in
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/Makefile.pre.in
|
||||||
|
+++ Python-3.3.0/Makefile.pre.in
|
||||||
|
@@ -476,10 +476,9 @@
|
||||||
|
|
||||||
|
# Build the shared modules
|
||||||
|
sharedmods: $(BUILDPYTHON) pybuilddir.txt
|
||||||
|
- case $$MAKEFLAGS in *s*) quiet=-q; esac; \
|
||||||
|
$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
|
||||||
|
CONFIG_ARGS="$(CONFIG_ARGS)" \
|
||||||
|
- $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
|
||||||
|
+ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py build
|
||||||
|
|
||||||
|
# Build static library
|
||||||
|
# avoid long command lines, same as LIBRARY_OBJS
|
@ -0,0 +1,71 @@
|
|||||||
|
Add some cross-compilation fixes to distutils
|
||||||
|
|
||||||
|
Inspired by work done by Marc Kleine-Budde <mkl@pengutronix.de> in
|
||||||
|
PTXdist.
|
||||||
|
|
||||||
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||||
|
---
|
||||||
|
Lib/distutils/sysconfig.py | 17 +++++++++++++----
|
||||||
|
configure.ac | 8 +++++++-
|
||||||
|
2 files changed, 20 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
Index: Python-3.3.0/Lib/distutils/sysconfig.py
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/Lib/distutils/sysconfig.py
|
||||||
|
+++ Python-3.3.0/Lib/distutils/sysconfig.py
|
||||||
|
@@ -16,15 +16,24 @@
|
||||||
|
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)
|
||||||
|
+EXECUTABLE_DIRNAME = os.path.dirname(os.path.realpath(sys.executable))
|
||||||
|
+if os.environ.get('CROSS_COMPILING') == 'yes':
|
||||||
|
+ _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'))
|
||||||
|
+ if '_python_srcdir' in os.environ:
|
||||||
|
+ EXECUTABLE_DIRNAME = os.path.normpath(os.environ['_python_srcdir'])
|
||||||
|
+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/PCBuild9. If we're dealing with an x64 Windows build,
|
||||||
|
# it'll live in project/PCbuild/amd64.
|
||||||
|
-project_base = os.path.dirname(os.path.abspath(sys.executable))
|
||||||
|
+project_base = EXECUTABLE_DIRNAME
|
||||||
|
if os.name == "nt" and "pcbuild" in project_base[-8:].lower():
|
||||||
|
project_base = os.path.abspath(os.path.join(project_base, os.path.pardir))
|
||||||
|
# PC/VS7.1
|
||||||
|
@@ -98,7 +107,7 @@
|
||||||
|
# the build directory may not be the source directory, we
|
||||||
|
# must use "srcdir" from the makefile to find the "Include"
|
||||||
|
# directory.
|
||||||
|
- base = _sys_home or os.path.dirname(os.path.abspath(sys.executable))
|
||||||
|
+ base = _sys_home or EXECUTABLE_DIRNAME
|
||||||
|
if plat_specific:
|
||||||
|
return base
|
||||||
|
if _sys_home:
|
||||||
|
Index: Python-3.3.0/configure.ac
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/configure.ac
|
||||||
|
+++ Python-3.3.0/configure.ac
|
||||||
|
@@ -963,7 +963,13 @@
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$cross_compiling" = yes; then
|
||||||
|
- RUNSHARED=
|
||||||
|
+ RUNSHARED=" \
|
||||||
|
+ CROSS_COMPILING=yes \
|
||||||
|
+ _python_cross_host=${ac_cv_host} \
|
||||||
|
+ _python_sysroot=\"\$(sysroot)\" \
|
||||||
|
+ _python_srcdir=\"\$(srcdir)\" \
|
||||||
|
+ _python_prefix=\"\$(prefix)\" \
|
||||||
|
+ _python_exec_prefix=\"\$(exec_prefix)\""
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_RESULT($LDLIBRARY)
|
@ -0,0 +1,21 @@
|
|||||||
|
Disable buggy_getaddrinfo configure test when cross-compiling with IPv6 support
|
||||||
|
|
||||||
|
Signed-off-by: Vanya Sergeev <vsergeev at gmail.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
configure.ac | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
Index: Python-3.3.0/configure.ac
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.3.0.orig/configure.ac
|
||||||
|
+++ Python-3.3.0/configure.ac
|
||||||
|
@@ -3204,7 +3204,7 @@
|
||||||
|
|
||||||
|
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
|
152
package/python3/python3.mk
Normal file
152
package/python3/python3.mk
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
#############################################################
|
||||||
|
#
|
||||||
|
# python3
|
||||||
|
#
|
||||||
|
#############################################################
|
||||||
|
PYTHON3_VERSION_MAJOR = 3.3
|
||||||
|
PYTHON3_VERSION = $(PYTHON3_VERSION_MAJOR).0
|
||||||
|
PYTHON3_SOURCE = Python-$(PYTHON3_VERSION).tar.bz2
|
||||||
|
PYTHON3_SITE = http://python.org/ftp/python/$(PYTHON3_VERSION)
|
||||||
|
|
||||||
|
# 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_OPT += \
|
||||||
|
--without-cxx-main \
|
||||||
|
--disable-sqlite3 \
|
||||||
|
--disable-tk \
|
||||||
|
--with-expat=system \
|
||||||
|
--disable-curses \
|
||||||
|
--disable-codecs-cjk \
|
||||||
|
--disable-nis \
|
||||||
|
--disable-unicodedata \
|
||||||
|
--disable-dbm \
|
||||||
|
--disable-gdbm \
|
||||||
|
--disable-bsddb \
|
||||||
|
--disable-test-modules \
|
||||||
|
--disable-bz2 \
|
||||||
|
--disable-ssl
|
||||||
|
|
||||||
|
HOST_PYTHON3_MAKE_ENV = \
|
||||||
|
PYTHON_MODULES_INCLUDE=$(HOST_DIR)/usr/include \
|
||||||
|
PYTHON_MODULES_LIB="$(HOST_DIR)/lib $(HOST_DIR)/usr/lib"
|
||||||
|
|
||||||
|
HOST_PYTHON3_AUTORECONF = YES
|
||||||
|
|
||||||
|
define HOST_PYTHON3_CONFIGURE_CMDS
|
||||||
|
(cd $(@D) && rm -rf config.cache; \
|
||||||
|
$(HOST_CONFIGURE_OPTS) \
|
||||||
|
CFLAGS="$(HOST_CFLAGS)" \
|
||||||
|
LDFLAGS="$(HOST_LDFLAGS)" \
|
||||||
|
$(HOST_PYTHON3_CONF_ENV) \
|
||||||
|
./configure \
|
||||||
|
--prefix="$(HOST_DIR)/usr" \
|
||||||
|
--sysconfdir="$(HOST_DIR)/etc" \
|
||||||
|
$(HOST_PYTHON3_CONF_OPT) \
|
||||||
|
)
|
||||||
|
endef
|
||||||
|
|
||||||
|
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
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BR2_PACKAGE_PYTHON3_PYEXPAT),y)
|
||||||
|
PYTHON3_DEPENDENCIES += expat
|
||||||
|
PYTHON3_CONF_OPT += --with-expat=system
|
||||||
|
else
|
||||||
|
PYTHON3_CONF_OPT += --with-expat=none
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BR2_PACKAGE_PYTHON3_SQLITE),y)
|
||||||
|
PYTHON3_DEPENDENCIES += sqlite
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BR2_PACKAGE_PYTHON3_SSL),y)
|
||||||
|
PYTHON_DEPENDENCIES += openssl
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BR2_PACKAGE_PYTHON3_BZIP2),y)
|
||||||
|
PYTHON_DEPENDENCIES += bzip2
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BR2_PACKAGE_PYTHON3_ZLIB),y)
|
||||||
|
PYTHON3_DEPENDENCIES += zlib
|
||||||
|
endif
|
||||||
|
|
||||||
|
PYTHON3_CONF_ENV += \
|
||||||
|
_PROJECT_BASE=$(PYTHON3_DIR) \
|
||||||
|
_PYTHON_HOST_PLATFORM=$(BR2_HOSTARCH) \
|
||||||
|
PYTHON_FOR_BUILD=$(HOST_PYTHON3_DIR)/python \
|
||||||
|
PGEN_FOR_BUILD=$(HOST_PYTHON3_DIR)/Parser/pgen \
|
||||||
|
ac_cv_have_long_long_format=yes \
|
||||||
|
ac_cv_file__dev_ptmx=yes \
|
||||||
|
ac_cv_file__dev_ptc=yes \
|
||||||
|
|
||||||
|
PYTHON3_CONF_OPT += \
|
||||||
|
--without-cxx-main \
|
||||||
|
--with-system-ffi \
|
||||||
|
--disable-pydoc \
|
||||||
|
--disable-test-modules \
|
||||||
|
--disable-lib2to3 \
|
||||||
|
--disable-gdbm \
|
||||||
|
--disable-tk \
|
||||||
|
--disable-nis \
|
||||||
|
--disable-dbm
|
||||||
|
|
||||||
|
PYTHON3_MAKE_ENV = \
|
||||||
|
_PROJECT_BASE=$(PYTHON3_DIR) \
|
||||||
|
_PYTHON_HOST_PLATFORM=$(BR2_HOSTARCH) \
|
||||||
|
PYTHON_MODULES_INCLUDE=$(STAGING_DIR)/usr/include \
|
||||||
|
PYTHON_MODULES_LIB="$(STAGING_DIR)/lib $(STAGING_DIR)/usr/lib"
|
||||||
|
|
||||||
|
# python distutils adds -L$LIBDIR when linking binary extensions, causing
|
||||||
|
# trouble for cross compilation
|
||||||
|
define PYTHON3_FIXUP_LIBDIR
|
||||||
|
$(SED) 's|^LIBDIR=.*|LIBDIR= $(STAGING_DIR)/usr/lib|' \
|
||||||
|
$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-3.3m/Makefile
|
||||||
|
endef
|
||||||
|
|
||||||
|
PYTHON3_POST_INSTALL_STAGING_HOOKS += PYTHON3_FIXUP_LIBDIR
|
||||||
|
|
||||||
|
#
|
||||||
|
# Development files removal
|
||||||
|
#
|
||||||
|
define PYTHON3_REMOVE_DEVFILES
|
||||||
|
rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR)-config
|
||||||
|
rm -f $(TARGET_DIR)/usr/bin/python3-config
|
||||||
|
endef
|
||||||
|
|
||||||
|
ifneq ($(BR2_HAVE_DEVFILES),y)
|
||||||
|
PYTHON3_POST_INSTALL_TARGET_HOOKS += PYTHON3_REMOVE_DEVFILES
|
||||||
|
endif
|
||||||
|
|
||||||
|
#
|
||||||
|
# Remove useless files. In the config/ directory, only the Makefile
|
||||||
|
# and the pyconfig.h files are needed at runtime.
|
||||||
|
#
|
||||||
|
define PYTHON3_REMOVE_USELESS_FILES
|
||||||
|
for i in `find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-3.3m/ \
|
||||||
|
-type f -not -name pyconfig.h -a -not -name Makefile` ; do \
|
||||||
|
rm -f $$i ; \
|
||||||
|
done
|
||||||
|
endef
|
||||||
|
|
||||||
|
PYTHON3_POST_INSTALL_TARGET_HOOKS += PYTHON3_REMOVE_USELESS_FILES
|
||||||
|
|
||||||
|
PYTHON3_AUTORECONF = YES
|
||||||
|
|
||||||
|
$(eval $(autotools-package))
|
||||||
|
$(eval $(host-autotools-package))
|
Loading…
x
Reference in New Issue
Block a user