[oe] [PATCH 1/2] python: add version 2.6.4

Dr. Michael Lauer mickey at vanille-media.de
Mon Feb 1 14:17:44 UTC 2010


Great work, thanks!

Acked-by: Michael 'Mickey' Lauer <mickey at vanille-media.de>

Am 28.01.2010 um 23:51 schrieb Martin Jansa:

> Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
> ---
> .../00-fix-bindir-libdir-for-cross.patch           |   20 +++
> .../01-use-proper-tools-for-cross-build.patch      |  116 ++++++++++++++++
> .../python-2.6.4/02-remove-test-for-cross.patch    |   94 +++++++++++++
> .../python-2.6.4/03-fix-tkinter-detection.patch    |   40 ++++++
> .../python-2.6.4/04-default-is-optimized.patch     |   52 ++++++++
> .../05-enable-ctypes-cross-build.patch             |   28 ++++
> .../python-2.6.4/99-ignore-optimization-flag.patch |   19 +++
> recipes/python/python-2.6.4/sitecustomize.py       |   45 +++++++
> .../00-fix-bindir-libdir-for-cross.patch           |   20 +++
> .../04-default-is-optimized.patch                  |   18 +++
> .../10-distutils-fix-swig-parameter.patch          |   16 +++
> .../11-distutils-never-modify-shebang-line.patch   |   18 +++
> ...2-distutils-prefix-is-inside-staging-area.patch |   60 +++++++++
> recipes/python/python-native-2.6.4/debug.patch     |   27 ++++
> .../python/python-native-2.6.4/nohostlibs.patch    |   53 ++++++++
> .../python/python-native-2.6.4/sitecustomize.py    |   45 +++++++
> recipes/python/python-native_2.6.4.bb              |   33 +++++
> recipes/python/python_2.6.4.bb                     |  139 ++++++++++++++++++++
> 18 files changed, 843 insertions(+), 0 deletions(-)
> create mode 100644 recipes/python/python-2.6.4/00-fix-bindir-libdir-for-cross.patch
> create mode 100644 recipes/python/python-2.6.4/01-use-proper-tools-for-cross-build.patch
> create mode 100644 recipes/python/python-2.6.4/02-remove-test-for-cross.patch
> create mode 100644 recipes/python/python-2.6.4/03-fix-tkinter-detection.patch
> create mode 100644 recipes/python/python-2.6.4/04-default-is-optimized.patch
> create mode 100644 recipes/python/python-2.6.4/05-enable-ctypes-cross-build.patch
> create mode 100644 recipes/python/python-2.6.4/99-ignore-optimization-flag.patch
> create mode 100644 recipes/python/python-2.6.4/sitecustomize.py
> create mode 100644 recipes/python/python-native-2.6.4/00-fix-bindir-libdir-for-cross.patch
> create mode 100644 recipes/python/python-native-2.6.4/04-default-is-optimized.patch
> create mode 100644 recipes/python/python-native-2.6.4/10-distutils-fix-swig-parameter.patch
> create mode 100644 recipes/python/python-native-2.6.4/11-distutils-never-modify-shebang-line.patch
> create mode 100644 recipes/python/python-native-2.6.4/12-distutils-prefix-is-inside-staging-area.patch
> create mode 100644 recipes/python/python-native-2.6.4/debug.patch
> create mode 100644 recipes/python/python-native-2.6.4/nohostlibs.patch
> create mode 100644 recipes/python/python-native-2.6.4/sitecustomize.py
> create mode 100644 recipes/python/python-native_2.6.4.bb
> create mode 100644 recipes/python/python_2.6.4.bb
> 
> diff --git a/recipes/python/python-2.6.4/00-fix-bindir-libdir-for-cross.patch b/recipes/python/python-2.6.4/00-fix-bindir-libdir-for-cross.patch
> new file mode 100644
> index 0000000..2559e3a
> --- /dev/null
> +++ b/recipes/python/python-2.6.4/00-fix-bindir-libdir-for-cross.patch
> @@ -0,0 +1,20 @@
> +# $(exec_prefix) points to the wrong directory, when installing
> +# a cross-build. @bindir@ and @libdir@ works better and doesn't
> +# affect the native build.
> +# Signed-Off: Michael 'Mickey' Lauer <mickey at vanille-media.de>
> +
> +Index: Python-2.6.1/Makefile.pre.in
> +===================================================================
> +--- Python-2.6.1.orig/Makefile.pre.in
> ++++ Python-2.6.1/Makefile.pre.in
> +@@ -86,8 +86,8 @@ exec_prefix=	@exec_prefix@
> + datarootdir=    @datarootdir@
> + 
> + # Expanded directories
> +-BINDIR=		$(exec_prefix)/bin
> +-LIBDIR=		$(exec_prefix)/lib
> ++BINDIR=		@bindir@
> ++LIBDIR=		@libdir@
> + MANDIR=		@mandir@
> + INCLUDEDIR=	@includedir@
> + CONFINCLUDEDIR=	$(exec_prefix)/include
> diff --git a/recipes/python/python-2.6.4/01-use-proper-tools-for-cross-build.patch b/recipes/python/python-2.6.4/01-use-proper-tools-for-cross-build.patch
> new file mode 100644
> index 0000000..e89faa4
> --- /dev/null
> +++ b/recipes/python/python-2.6.4/01-use-proper-tools-for-cross-build.patch
> @@ -0,0 +1,116 @@
> +# We need to ensure our host tools get run during build, not the freshly
> +# built cross-tools (this will not work), so we introduce HOSTPYTHON and HOSTPGEN.
> +# Signed-Off: Michael 'Mickey' Lauer <mickey at vanille-media.de>
> +
> +Index: Python-2.6.1/Makefile.pre.in
> +===================================================================
> +--- Python-2.6.1.orig/Makefile.pre.in
> ++++ Python-2.6.1/Makefile.pre.in
> +@@ -175,6 +175,7 @@ UNICODE_OBJS=   @UNICODE_OBJS@
> + 
> + PYTHON=		python$(EXE)
> + BUILDPYTHON=	python$(BUILDEXE)
> ++HOSTPYTHON=	$(BUILDPYTHON)
> + 
> + # The task to run while instrument when building the profile-opt target
> + PROFILE_TASK=	$(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck
> +@@ -205,7 +206,7 @@ GRAMMAR_INPUT=	$(srcdir)/Grammar/Grammar
> + ##########################################################################
> + # Parser
> + PGEN=		Parser/pgen$(EXE)
> +-
> ++HOSTPGEN=	$(PGEN)$(EXE)
> + POBJS=		\
> + 		Parser/acceler.o \
> + 		Parser/grammar1.o \
> +@@ -394,8 +395,8 @@ platform: $(BUILDPYTHON)
> + # Build the shared modules
> + sharedmods: $(BUILDPYTHON)
> + 	@case $$MAKEFLAGS in \
> +-	*s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
> +-	*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
> ++	*s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py -q build;; \
> ++	*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py build;; \
> + 	esac
> + 
> + # Build static library
> +@@ -513,7 +514,7 @@ Modules/python.o: $(srcdir)/Modules/pyth
> + 
> + $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
> + 		-@$(INSTALL) -d Include
> +-		-$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
> ++		-$(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
> + 
> + $(PGEN):	$(PGENOBJS)
> + 		$(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
> +@@ -879,23 +880,23 @@ libinstall:	build_all $(srcdir)/Lib/$(PL
> + 	done
> + 	$(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
> + 	PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
> +-		./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
> ++		$(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
> + 		-d $(LIBDEST) -f \
> + 		-x 'bad_coding|badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
> + 	PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
> +-		./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
> ++		$(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
> + 		-d $(LIBDEST) -f \
> + 		-x 'bad_coding|badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
> + 	-PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
> +-		./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
> ++		$(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
> + 		-d $(LIBDEST)/site-packages -f \
> + 		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
> + 	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
> +-		./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
> ++		$(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
> + 		-d $(LIBDEST)/site-packages -f \
> + 		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
> + 	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
> +-		./$(BUILDPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"
> ++		$(HOSTPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"
> + 
> + # Create the PLATDIR source directory, if one wasn't distributed..
> + $(srcdir)/Lib/$(PLATDIR):
> +@@ -993,7 +994,7 @@ libainstall:	all
> + # Install the dynamically loadable modules
> + # This goes into $(exec_prefix)
> + sharedinstall:
> +-	$(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
> ++	$(RUNSHARED) $(HOSTPYTHON) -E $(srcdir)/setup.py install \
> + 	   	--prefix=$(prefix) \
> + 		--install-scripts=$(BINDIR) \
> + 		--install-platlib=$(DESTSHARED) \
> +Index: Python-2.6.1/setup.py
> +===================================================================
> +--- Python-2.6.1.orig/setup.py
> ++++ Python-2.6.1/setup.py
> +@@ -276,6 +276,7 @@ class PyBuildExt(build_ext):
> +             self.failed.append(ext.name)
> +             self.announce('*** WARNING: renaming "%s" since importing it'
> +                           ' failed: %s' % (ext.name, why), level=3)
> ++            return
> +             assert not self.inplace
> +             basename, tail = os.path.splitext(ext_filename)
> +             newname = basename + "_failed" + tail
> +@@ -310,8 +311,8 @@ class PyBuildExt(build_ext):
> + 
> +     def detect_modules(self):
> +         # Ensure that /usr/local is always used
> +-        add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
> +-        add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
> ++        # add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
> ++        # add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
> + 
> +         # Add paths specified in the environment variables LDFLAGS and
> +         # CPPFLAGS for header and library files.
> +@@ -410,6 +411,9 @@ class PyBuildExt(build_ext):
> + 
> +         # XXX Omitted modules: gl, pure, dl, SGI-specific modules
> + 
> ++        lib_dirs = [ os.getenv( "STAGING_LIBDIR" ) ]
> ++        inc_dirs = [ os.getenv( "STAGING_INCDIR" ) ]
> ++
> +         #
> +         # The following modules are all pretty straightforward, and compile
> +         # on pretty much any POSIXish platform.
> diff --git a/recipes/python/python-2.6.4/02-remove-test-for-cross.patch b/recipes/python/python-2.6.4/02-remove-test-for-cross.patch
> new file mode 100644
> index 0000000..48386ea
> --- /dev/null
> +++ b/recipes/python/python-2.6.4/02-remove-test-for-cross.patch
> @@ -0,0 +1,94 @@
> +# OpenEmbedded prepopulates the autotools site cache, so if this
> +# would be using AC_TRY_CACHE, we could patch it in a more sane way
> +# Alas, I don't have enough autotalent to do that.
> +#
> +# Signed-Off: Michael 'Mickey' Lauer <mickey at vanille-media.de>
> +Index: Python-2.6.1/configure.in
> +===================================================================
> +--- Python-2.6.1.orig/configure.in
> ++++ Python-2.6.1/configure.in
> +@@ -2556,38 +2556,6 @@ AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_
> +   AC_CHECK_LIB(resolv, inet_aton)
> + )
> + 
> +-# On Tru64, chflags seems to be present, but calling it will
> +-# exit Python
> +-AC_MSG_CHECKING(for chflags)
> +-AC_TRY_RUN([
> +-#include <sys/stat.h>
> +-#include <unistd.h>
> +-int main(int argc, char*argv[])
> +-{
> +-  if(chflags(argv[0], 0) != 0)
> +-    return 1;
> +-  return 0;
> +-}
> +-],AC_DEFINE(HAVE_CHFLAGS, 1, Define to 1 if you have the `chflags' function.)
> +-  AC_MSG_RESULT(yes),
> +-  AC_MSG_RESULT(no)
> +-)
> +-
> +-AC_MSG_CHECKING(for lchflags)
> +-AC_TRY_RUN([
> +-#include <sys/stat.h>
> +-#include <unistd.h>
> +-int main(int argc, char*argv[])
> +-{
> +-  if(lchflags(argv[0], 0) != 0)
> +-    return 1;
> +-  return 0;
> +-}
> +-],AC_DEFINE(HAVE_LCHFLAGS, 1, Define to 1 if you have the `lchflags' function.)
> +-  AC_MSG_RESULT(yes),
> +-  AC_MSG_RESULT(no)
> +-)
> +-
> + dnl Check if system zlib has *Copy() functions
> + dnl
> + dnl On MacOSX the linker will search for dylibs on the entire linker path
> +@@ -3649,45 +3617,6 @@ else
> +   AC_MSG_RESULT(no)
> + fi
> + 
> +-AC_MSG_CHECKING(for %zd printf() format support)
> +-AC_TRY_RUN([#include <stdio.h>
> +-#include <stddef.h>
> +-#include <string.h>
> +-
> +-#ifdef HAVE_SYS_TYPES_H
> +-#include <sys/types.h>
> +-#endif
> +-
> +-#ifdef HAVE_SSIZE_T
> +-typedef ssize_t Py_ssize_t;
> +-#elif SIZEOF_VOID_P == SIZEOF_LONG
> +-typedef long Py_ssize_t;
> +-#else
> +-typedef int Py_ssize_t;
> +-#endif
> +-
> +-int main()
> +-{
> +-    char buffer[256];
> +-
> +-    if(sprintf(buffer, "%zd", (size_t)123) < 0)
> +-       	return 1;
> +-
> +-    if (strcmp(buffer, "123"))
> +-	return 1;
> +-
> +-    if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0)
> +-       	return 1;
> +-
> +-    if (strcmp(buffer, "-123"))
> +-	return 1;
> +-
> +-    return 0;
> +-}],
> +-[AC_MSG_RESULT(yes)
> +- AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t])],
> +- AC_MSG_RESULT(no))
> +-
> + AC_CHECK_TYPE(socklen_t,,
> +   AC_DEFINE(socklen_t,int,
> +             Define to `int' if <sys/socket.h> does not define.),[
> diff --git a/recipes/python/python-2.6.4/03-fix-tkinter-detection.patch b/recipes/python/python-2.6.4/03-fix-tkinter-detection.patch
> new file mode 100644
> index 0000000..a1a385a
> --- /dev/null
> +++ b/recipes/python/python-2.6.4/03-fix-tkinter-detection.patch
> @@ -0,0 +1,40 @@
> +# We need to supply STAGING_INCDIR here, otherwise the Tk headers
> +# will not be found.
> +# Signed-Off: Michael 'Mickey' Lauer <mickey at vanille.de>
> +
> +Index: Python-2.6.1/setup.py
> +===================================================================
> +--- Python-2.6.1.orig/setup.py
> ++++ Python-2.6.1/setup.py
> +@@ -1543,7 +1543,7 @@ class PyBuildExt(build_ext):
> +                 dotversion = dotversion[:-1] + '.' + dotversion[-1]
> +             tcl_include_sub = []
> +             tk_include_sub = []
> +-            for dir in inc_dirs:
> ++            for dir in [os.getenv("STAGING_INCDIR")]:
> +                 tcl_include_sub += [dir + os.sep + "tcl" + dotversion]
> +                 tk_include_sub += [dir + os.sep + "tk" + dotversion]
> +             tk_include_sub += tcl_include_sub
> +@@ -1562,22 +1562,6 @@ class PyBuildExt(build_ext):
> +             if dir not in include_dirs:
> +                 include_dirs.append(dir)
> + 
> +-        # Check for various platform-specific directories
> +-        if platform == 'sunos5':
> +-            include_dirs.append('/usr/openwin/include')
> +-            added_lib_dirs.append('/usr/openwin/lib')
> +-        elif os.path.exists('/usr/X11R6/include'):
> +-            include_dirs.append('/usr/X11R6/include')
> +-            added_lib_dirs.append('/usr/X11R6/lib64')
> +-            added_lib_dirs.append('/usr/X11R6/lib')
> +-        elif os.path.exists('/usr/X11R5/include'):
> +-            include_dirs.append('/usr/X11R5/include')
> +-            added_lib_dirs.append('/usr/X11R5/lib')
> +-        else:
> +-            # Assume default location for X11
> +-            include_dirs.append('/usr/X11/include')
> +-            added_lib_dirs.append('/usr/X11/lib')
> +-
> +         # If Cygwin, then verify that X is installed before proceeding
> +         if platform == 'cygwin':
> +             x11_inc = find_file('X11/Xlib.h', [], include_dirs)
> diff --git a/recipes/python/python-2.6.4/04-default-is-optimized.patch b/recipes/python/python-2.6.4/04-default-is-optimized.patch
> new file mode 100644
> index 0000000..805f4f6
> --- /dev/null
> +++ b/recipes/python/python-2.6.4/04-default-is-optimized.patch
> @@ -0,0 +1,52 @@
> +# when compiling for an embedded system, we need every bit of
> +# performance we can get. default to optimized with the option
> +# of opt-out.
> +# Signed-Off: Michael 'Mickey' Lauer <mickey at vanille-media.de>
> +
> +Index: Python-2.6.1/Python/compile.c
> +===================================================================
> +--- Python-2.6.1.orig/Python/compile.c
> ++++ Python-2.6.1/Python/compile.c
> +@@ -32,7 +32,7 @@
> + #include "symtable.h"
> + #include "opcode.h"
> + 
> +-int Py_OptimizeFlag = 0;
> ++int Py_OptimizeFlag = 1;
> + 
> + #define DEFAULT_BLOCK_SIZE 16
> + #define DEFAULT_BLOCKS 8
> +Index: Python-2.6.1/Modules/main.c
> +===================================================================
> +--- Python-2.6.1.orig/Modules/main.c
> ++++ Python-2.6.1/Modules/main.c
> +@@ -40,7 +40,7 @@ static char **orig_argv;
> + static int  orig_argc;
> + 
> + /* command line options */
> +-#define BASE_OPTS "3bBc:dEhiJm:OQ:sStuUvVW:xX?"
> ++#define BASE_OPTS "3bBc:dEhiJm:NOQ:sStuUvVW:xX?"
> + 
> + #ifndef RISCOS
> + #define PROGRAM_OPTS BASE_OPTS
> +@@ -69,8 +69,7 @@ Options and arguments (and corresponding
> + static char *usage_2 = "\
> +          if stdin does not appear to be a terminal; also PYTHONINSPECT=x\n\
> + -m mod : run library module as a script (terminates option list)\n\
> +--O     : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x\n\
> +--OO    : remove doc-strings in addition to the -O optimizations\n\
> ++-N     : do NOT optimize generated bytecode\n\
> + -Q arg : division options: -Qold (default), -Qwarn, -Qwarnall, -Qnew\n\
> + -s     : don't add user site directory to sys.path; also PYTHONNOUSERSITE\n\
> + -S     : don't imply 'import site' on initialization\n\
> +@@ -353,8 +352,8 @@ Py_Main(int argc, char **argv)
> + 
> + 		/* case 'J': reserved for Jython */
> + 
> +-		case 'O':
> +-			Py_OptimizeFlag++;
> ++		case 'N':
> ++			Py_OptimizeFlag=0;
> + 			break;
> + 
> + 		case 'B':
> diff --git a/recipes/python/python-2.6.4/05-enable-ctypes-cross-build.patch b/recipes/python/python-2.6.4/05-enable-ctypes-cross-build.patch
> new file mode 100644
> index 0000000..58b8078
> --- /dev/null
> +++ b/recipes/python/python-2.6.4/05-enable-ctypes-cross-build.patch
> @@ -0,0 +1,28 @@
> +# CTypes need to know the actual host we are building on.
> +# Signed-Off: Michael Dietrich <mdt at emdete.de>
> +
> +Index: Python-2.6.1/setup.py
> +===================================================================
> +--- Python-2.6.1.orig/setup.py
> ++++ Python-2.6.1/setup.py
> +@@ -1656,16 +1656,16 @@ class PyBuildExt(build_ext):
> +                                          ffi_configfile):
> +                 from distutils.dir_util import mkpath
> +                 mkpath(ffi_builddir)
> +-                config_args = []
> ++                config_args = ['--host=%s' % os.environ["HOST_SYS"], ]
> + 
> +                 # Pass empty CFLAGS because we'll just append the resulting
> +                 # CFLAGS to Python's; -g or -O2 is to be avoided.
> +-                cmd = "cd %s && env CFLAGS='' '%s/configure' %s" \
> +-                      % (ffi_builddir, ffi_srcdir, " ".join(config_args))
> ++                cmd = "(cd %s && autoconf -W cross) && (cd %s && env CFLAGS='' '%s/configure' %s)" \
> ++                      % (ffi_srcdir, ffi_builddir, ffi_srcdir, " ".join(config_args))
> + 
> +                 res = os.system(cmd)
> +                 if res or not os.path.exists(ffi_configfile):
> +-                    print "Failed to configure _ctypes module"
> ++                    print "Failed to configure _ctypes module (res=%d) or missing conffile=%s" % ( res, ffi_configfile )
> +                     return False
> + 
> +             fficonfig = {}
> diff --git a/recipes/python/python-2.6.4/99-ignore-optimization-flag.patch b/recipes/python/python-2.6.4/99-ignore-optimization-flag.patch
> new file mode 100644
> index 0000000..02dc44c
> --- /dev/null
> +++ b/recipes/python/python-2.6.4/99-ignore-optimization-flag.patch
> @@ -0,0 +1,19 @@
> +# Reinstate the empty -O option to fix weird mixing of native and target
> +# binaries and libraries with LD_LIBRARY_PATH when host==target
> +#
> +# Signed-off-by: Denys Dmytriyenko <denis at denix.org>
> +
> +Index: Python-2.6.1/Modules/main.c
> +===================================================================
> +--- Python-2.6.1-orig/Modules/main.c
> ++++ Python-2.6.1/Modules/main.c
> +@@ -352,6 +352,9 @@ Py_Main(int argc, char **argv)
> + 
> + 		/* case 'J': reserved for Jython */
> + 
> ++		case 'O': /* ignore it */
> ++			break;
> ++
> + 		case 'N':
> + 			Py_OptimizeFlag=0;
> + 			break;
> diff --git a/recipes/python/python-2.6.4/sitecustomize.py b/recipes/python/python-2.6.4/sitecustomize.py
> new file mode 100644
> index 0000000..2739018
> --- /dev/null
> +++ b/recipes/python/python-2.6.4/sitecustomize.py
> @@ -0,0 +1,45 @@
> +# OpenEmbedded sitecustomize.py (C) 2002-2008 Michael 'Mickey' Lauer <mlauer at vanille-media.de>
> +# GPLv2 or later
> +# Version: 20081123
> +# Features:
> +# * set proper default encoding
> +# * enable readline completion in the interactive interpreter
> +# * load command line history on startup
> +# * save command line history on exit 
> +
> +import os
> +
> +def __exithandler():
> +    try:
> +        readline.write_history_file( "%s/.python-history" % os.getenv( "HOME", "/tmp" ) )
> +    except IOError:
> +        pass
> +
> +def __registerExitHandler():
> +    import atexit
> +    atexit.register( __exithandler )
> +
> +def __enableReadlineSupport():
> +    readline.set_history_length( 1000 )
> +    readline.parse_and_bind( "tab: complete" )
> +    try:
> +        readline.read_history_file( "%s/.python-history" % os.getenv( "HOME", "/tmp" ) )
> +    except IOError:
> +        pass
> +
> +def __enableDefaultEncoding():
> +    import sys
> +    try:
> +        sys.setdefaultencoding( "utf8" )
> +    except LookupError:
> +        pass
> +
> +import sys
> +try:
> +    import rlcompleter, readline
> +except ImportError:
> +    pass
> +else:
> +    __enableDefaultEncoding()
> +    __registerExitHandler()
> +    __enableReadlineSupport()
> diff --git a/recipes/python/python-native-2.6.4/00-fix-bindir-libdir-for-cross.patch b/recipes/python/python-native-2.6.4/00-fix-bindir-libdir-for-cross.patch
> new file mode 100644
> index 0000000..2559e3a
> --- /dev/null
> +++ b/recipes/python/python-native-2.6.4/00-fix-bindir-libdir-for-cross.patch
> @@ -0,0 +1,20 @@
> +# $(exec_prefix) points to the wrong directory, when installing
> +# a cross-build. @bindir@ and @libdir@ works better and doesn't
> +# affect the native build.
> +# Signed-Off: Michael 'Mickey' Lauer <mickey at vanille-media.de>
> +
> +Index: Python-2.6.1/Makefile.pre.in
> +===================================================================
> +--- Python-2.6.1.orig/Makefile.pre.in
> ++++ Python-2.6.1/Makefile.pre.in
> +@@ -86,8 +86,8 @@ exec_prefix=	@exec_prefix@
> + datarootdir=    @datarootdir@
> + 
> + # Expanded directories
> +-BINDIR=		$(exec_prefix)/bin
> +-LIBDIR=		$(exec_prefix)/lib
> ++BINDIR=		@bindir@
> ++LIBDIR=		@libdir@
> + MANDIR=		@mandir@
> + INCLUDEDIR=	@includedir@
> + CONFINCLUDEDIR=	$(exec_prefix)/include
> diff --git a/recipes/python/python-native-2.6.4/04-default-is-optimized.patch b/recipes/python/python-native-2.6.4/04-default-is-optimized.patch
> new file mode 100644
> index 0000000..5131e0b
> --- /dev/null
> +++ b/recipes/python/python-native-2.6.4/04-default-is-optimized.patch
> @@ -0,0 +1,18 @@
> +# When compiling for an embedded system, we need every bit of
> +# performance we can get. default to optimized with the option
> +# of opt-out.
> +# Signed-Off: Michael 'Mickey' Lauer <mickey at vanille-media.de>
> +
> +Index: Python-2.6.1/Python/compile.c
> +===================================================================
> +--- Python-2.6.1.orig/Python/compile.c
> ++++ Python-2.6.1/Python/compile.c
> +@@ -32,7 +32,7 @@
> + #include "symtable.h"
> + #include "opcode.h"
> + 
> +-int Py_OptimizeFlag = 0;
> ++int Py_OptimizeFlag = 1;
> + 
> + #define DEFAULT_BLOCK_SIZE 16
> + #define DEFAULT_BLOCKS 8
> diff --git a/recipes/python/python-native-2.6.4/10-distutils-fix-swig-parameter.patch b/recipes/python/python-native-2.6.4/10-distutils-fix-swig-parameter.patch
> new file mode 100644
> index 0000000..f5e852a
> --- /dev/null
> +++ b/recipes/python/python-native-2.6.4/10-distutils-fix-swig-parameter.patch
> @@ -0,0 +1,16 @@
> +# Some versions of SWIG do not use the extension parameter.
> +# Make it optional.
> +# Signed-Off: Michael 'Mickey' Lauer <mickey at vanille-media.de>
> +Index: Python-2.6.1/Lib/distutils/command/build_ext.py
> +===================================================================
> +--- Python-2.6.1.orig/Lib/distutils/command/build_ext.py
> ++++ Python-2.6.1/Lib/distutils/command/build_ext.py
> +@@ -566,7 +566,7 @@ class build_ext (Command):
> +             target_lang=language)
> + 
> + 
> +-    def swig_sources (self, sources, extension):
> ++    def swig_sources (self, sources, extension=None):
> + 
> +         """Walk the list of source files in 'sources', looking for SWIG
> +         interface (.i) files.  Run SWIG on all that are found, and
> diff --git a/recipes/python/python-native-2.6.4/11-distutils-never-modify-shebang-line.patch b/recipes/python/python-native-2.6.4/11-distutils-never-modify-shebang-line.patch
> new file mode 100644
> index 0000000..8354e26
> --- /dev/null
> +++ b/recipes/python/python-native-2.6.4/11-distutils-never-modify-shebang-line.patch
> @@ -0,0 +1,18 @@
> +# Don't modify the she-bang line for a cross-build.
> +# Otherwise it points to our hostpython (which we do not want)
> +#
> +# Signed-Off: Michael 'Mickey' Lauer <mickey at vanille-media.de>
> +
> +Index: Python-2.6.1/Lib/distutils/command/build_scripts.py
> +===================================================================
> +--- Python-2.6.1.orig/Lib/distutils/command/build_scripts.py
> ++++ Python-2.6.1/Lib/distutils/command/build_scripts.py
> +@@ -87,7 +87,7 @@ class build_scripts (Command):
> +                     continue
> + 
> +                 match = first_line_re.match(first_line)
> +-                if match:
> ++                if False: #match:
> +                     adjust = 1
> +                     post_interp = match.group(1) or ''
> + 
> diff --git a/recipes/python/python-native-2.6.4/12-distutils-prefix-is-inside-staging-area.patch b/recipes/python/python-native-2.6.4/12-distutils-prefix-is-inside-staging-area.patch
> new file mode 100644
> index 0000000..aa43936
> --- /dev/null
> +++ b/recipes/python/python-native-2.6.4/12-distutils-prefix-is-inside-staging-area.patch
> @@ -0,0 +1,60 @@
> +# The proper prefix is inside our staging area.
> +# Signed-Off: Michael 'Mickey' Lauer <mickey at vanille-media.de>
> +
> +Index: Python-2.6.1/Lib/distutils/sysconfig.py
> +===================================================================
> +--- Python-2.6.1.orig/Lib/distutils/sysconfig.py
> ++++ Python-2.6.1/Lib/distutils/sysconfig.py
> +@@ -19,8 +19,8 @@ import sys
> + from distutils.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)
> ++PREFIX = os.path.normpath(sys.prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
> ++EXEC_PREFIX = os.path.normpath(sys.exec_prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
> + 
> + # 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,
> +@@ -70,7 +70,10 @@ def get_python_inc(plat_specific=0, pref
> +     sys.exec_prefix -- i.e., ignore 'plat_specific'.
> +     """
> +     if prefix is None:
> +-        prefix = plat_specific and EXEC_PREFIX or PREFIX
> ++        if plat_specific:
> ++            prefix = plat_specific and os.environ['STAGING_INCDIR'].rstrip('include')
> ++        else:
> ++            prefix = plat_specific and EXEC_PREFIX or PREFIX
> +     if os.name == "posix":
> +         if python_build:
> +             base = os.path.dirname(os.path.abspath(sys.executable))
> +@@ -112,7 +115,10 @@ def get_python_lib(plat_specific=0, stan
> +     sys.exec_prefix -- i.e., ignore 'plat_specific'.
> +     """
> +     if prefix is None:
> +-        prefix = plat_specific and EXEC_PREFIX or PREFIX
> ++        if plat_specific:
> ++            prefix = plat_specific and os.environ['STAGING_LIBDIR'].rstrip('lib')
> ++        else:
> ++            prefix = plat_specific and EXEC_PREFIX or PREFIX
> + 
> +     if os.name == "posix":
> +         libpython = os.path.join(prefix,
> +@@ -218,7 +218,7 @@ def get_config_h_filename():
> +     else:
> +         # The name of the config.h file changed in 2.2
> +         config_h = 'pyconfig.h'
> +-    return os.path.join(inc_dir, config_h)
> ++    return os.path.join(inc_dir, config_h).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
> + 
> + 
> + def get_makefile_filename():
> +@@ -226,7 +226,7 @@ def get_makefile_filename():
> +     if python_build:
> +         return os.path.join(os.path.dirname(sys.executable), "Makefile")
> +     lib_dir = get_python_lib(plat_specific=1, standard_lib=1)
> +-    return os.path.join(lib_dir, "config", "Makefile")
> ++    return os.path.join(lib_dir, "config", "Makefile").replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
> + 
> + 
> + def parse_config_h(fp, g=None):
> diff --git a/recipes/python/python-native-2.6.4/debug.patch b/recipes/python/python-native-2.6.4/debug.patch
> new file mode 100644
> index 0000000..beb3adc
> --- /dev/null
> +++ b/recipes/python/python-native-2.6.4/debug.patch
> @@ -0,0 +1,27 @@
> +Index: Python-2.6.1/Lib/distutils/unixccompiler.py
> +===================================================================
> +--- Python-2.6.1.orig/Lib/distutils/unixccompiler.py	2009-11-13 16:04:54.000000000 +0000
> ++++ Python-2.6.1/Lib/distutils/unixccompiler.py	2009-11-13 16:06:27.000000000 +0000
> +@@ -300,6 +300,8 @@
> +         dylib_f = self.library_filename(lib, lib_type='dylib')
> +         static_f = self.library_filename(lib, lib_type='static')
> + 
> ++        print "Looking in %s for %s" % (lib, dirs)
> ++
> +         for dir in dirs:
> +             shared = os.path.join(dir, shared_f)
> +             dylib = os.path.join(dir, dylib_f)
> +@@ -309,10 +311,13 @@
> +             # assuming that *all* Unix C compilers do.  And of course I'm
> +             # ignoring even GCC's "-static" option.  So sue me.
> +             if os.path.exists(dylib):
> ++                print "Found %s" % (dylib)
> +                 return dylib
> +             elif os.path.exists(shared):
> ++                print "Found %s" % (shared)
> +                 return shared
> +             elif os.path.exists(static):
> ++                print "Found %s" % (static)
> +                 return static
> + 
> +         # Oops, didn't find it in *any* of 'dirs'
> diff --git a/recipes/python/python-native-2.6.4/nohostlibs.patch b/recipes/python/python-native-2.6.4/nohostlibs.patch
> new file mode 100644
> index 0000000..7020f3c
> --- /dev/null
> +++ b/recipes/python/python-native-2.6.4/nohostlibs.patch
> @@ -0,0 +1,53 @@
> +Index: Python-2.6.1/setup.py
> +===================================================================
> +--- Python-2.6.1.orig/setup.py	2009-11-13 16:20:47.000000000 +0000
> ++++ Python-2.6.1/setup.py	2009-11-13 16:28:00.000000000 +0000
> +@@ -310,8 +310,8 @@
> + 
> +     def detect_modules(self):
> +         # Ensure that /usr/local is always used
> +-        add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
> +-        add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
> ++        #add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
> ++        #add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
> + 
> +         # Add paths specified in the environment variables LDFLAGS and
> +         # CPPFLAGS for header and library files.
> +@@ -347,10 +347,10 @@
> +                     for directory in reversed(options.dirs):
> +                         add_dir_to_list(dir_list, directory)
> + 
> +-        if os.path.normpath(sys.prefix) != '/usr':
> +-            add_dir_to_list(self.compiler.library_dirs,
> ++
> ++        add_dir_to_list(self.compiler.library_dirs,
> +                             sysconfig.get_config_var("LIBDIR"))
> +-            add_dir_to_list(self.compiler.include_dirs,
> ++        add_dir_to_list(self.compiler.include_dirs,
> +                             sysconfig.get_config_var("INCLUDEDIR"))
> + 
> +         try:
> +@@ -361,11 +361,8 @@
> +         # 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.
> +-        lib_dirs = self.compiler.library_dirs + [
> +-            '/lib64', '/usr/lib64',
> +-            '/lib', '/usr/lib',
> +-            ]
> +-        inc_dirs = self.compiler.include_dirs + ['/usr/include']
> ++        lib_dirs = self.compiler.library_dirs
> ++        inc_dirs = self.compiler.include_dirs
> +         exts = []
> +         missing = []
> + 
> +@@ -583,8 +580,7 @@
> +                 readline_libs.append('ncurses')
> +             elif self.compiler.find_library_file(lib_dirs, 'curses'):
> +                 readline_libs.append('curses')
> +-            elif self.compiler.find_library_file(lib_dirs +
> +-                                               ['/usr/lib/termcap'],
> ++            elif self.compiler.find_library_file(lib_dirs,
> +                                                'termcap'):
> +                 readline_libs.append('termcap')
> +             exts.append( Extension('readline', ['readline.c'],
> diff --git a/recipes/python/python-native-2.6.4/sitecustomize.py b/recipes/python/python-native-2.6.4/sitecustomize.py
> new file mode 100644
> index 0000000..2739018
> --- /dev/null
> +++ b/recipes/python/python-native-2.6.4/sitecustomize.py
> @@ -0,0 +1,45 @@
> +# OpenEmbedded sitecustomize.py (C) 2002-2008 Michael 'Mickey' Lauer <mlauer at vanille-media.de>
> +# GPLv2 or later
> +# Version: 20081123
> +# Features:
> +# * set proper default encoding
> +# * enable readline completion in the interactive interpreter
> +# * load command line history on startup
> +# * save command line history on exit 
> +
> +import os
> +
> +def __exithandler():
> +    try:
> +        readline.write_history_file( "%s/.python-history" % os.getenv( "HOME", "/tmp" ) )
> +    except IOError:
> +        pass
> +
> +def __registerExitHandler():
> +    import atexit
> +    atexit.register( __exithandler )
> +
> +def __enableReadlineSupport():
> +    readline.set_history_length( 1000 )
> +    readline.parse_and_bind( "tab: complete" )
> +    try:
> +        readline.read_history_file( "%s/.python-history" % os.getenv( "HOME", "/tmp" ) )
> +    except IOError:
> +        pass
> +
> +def __enableDefaultEncoding():
> +    import sys
> +    try:
> +        sys.setdefaultencoding( "utf8" )
> +    except LookupError:
> +        pass
> +
> +import sys
> +try:
> +    import rlcompleter, readline
> +except ImportError:
> +    pass
> +else:
> +    __enableDefaultEncoding()
> +    __registerExitHandler()
> +    __enableReadlineSupport()
> diff --git a/recipes/python/python-native_2.6.4.bb b/recipes/python/python-native_2.6.4.bb
> new file mode 100644
> index 0000000..ca65057
> --- /dev/null
> +++ b/recipes/python/python-native_2.6.4.bb
> @@ -0,0 +1,33 @@
> +require python.inc
> +DEPENDS = "openssl-native bzip2-full-native zlib-native readline-native"
> +PR = "${INC_PR}.2"
> +
> +SRC_URI = "\
> +  http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2;name=archive \
> +  file://00-fix-bindir-libdir-for-cross.patch;patch=1 \
> +  file://04-default-is-optimized.patch;patch=1 \
> +  file://05-enable-ctypes-cross-build.patch;patch=1 \
> +  file://10-distutils-fix-swig-parameter.patch;patch=1 \
> +  file://11-distutils-never-modify-shebang-line.patch;patch=1 \
> +  file://12-distutils-prefix-is-inside-staging-area.patch;patch=1 \
> +  file://debug.patch;patch=1 \
> +  file://nohostlibs.patch;patch=1 \
> +"
> +S = "${WORKDIR}/Python-${PV}"
> +
> +SRC_URI[archive.md5sum] = "fee5408634a54e721a93531aba37f8c1"
> +SRC_URI[archive.sha256sum] = "dad8d5575144a210d5cc4fdbc40b8a26386e9cdb1ef58941bec0be02c7cb9d89"
> +
> +inherit native
> +
> +EXTRA_OEMAKE = '\
> +  BUILD_SYS="" \
> +  HOST_SYS="" \
> +  LIBC="" \
> +  STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} \
> +  STAGING_INCDIR=${STAGING_INCDIR_NATIVE} \
> +'
> +
> +do_stage_append() {
> +	install -m 0755 Parser/pgen ${STAGING_BINDIR_NATIVE}/pgen
> +}
> diff --git a/recipes/python/python_2.6.4.bb b/recipes/python/python_2.6.4.bb
> new file mode 100644
> index 0000000..6d93c2c
> --- /dev/null
> +++ b/recipes/python/python_2.6.4.bb
> @@ -0,0 +1,139 @@
> +require python.inc
> +DEPENDS = "python-native db gdbm openssl readline sqlite3 tcl zlib\
> +           ${@base_contains('DISTRO_FEATURES', 'tk', 'tk', '', d)}"
> +DEPENDS_sharprom = "python-native db readline zlib gdbm openssl"
> +# set to .0 on every increase of INC_PR
> +PR = "${INC_PR}.0"
> +
> +SRC_URI = "\
> +  http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2;name=archive \
> +  file://00-fix-bindir-libdir-for-cross.patch;patch=1 \
> +  file://01-use-proper-tools-for-cross-build.patch;patch=1 \
> +  file://02-remove-test-for-cross.patch;patch=1 \
> +  file://03-fix-tkinter-detection.patch;patch=1 \
> +  file://04-default-is-optimized.patch;patch=1 \
> +  file://05-enable-ctypes-cross-build.patch;patch=1 \
> +  file://99-ignore-optimization-flag.patch;patch=1 \
> +  \
> +# not yet pushed forward
> +# sitebranding
> +  \
> +#  file://05-install.patch;patch=1 \
> +#  file://06-fix-urllib-exception.patch;patch=1 \
> +#  file://16-bug1179-imageop.patch;patch=1 \
> +#  file://13-set-wakeup-fix.patch;patch=1 \
> +  \
> +  file://sitecustomize.py \
> +"
> +SRC_URI[archive.md5sum] = "fee5408634a54e721a93531aba37f8c1"
> +SRC_URI[archive.sha256sum] = "dad8d5575144a210d5cc4fdbc40b8a26386e9cdb1ef58941bec0be02c7cb9d89"
> +
> +S = "${WORKDIR}/Python-${PV}"
> +
> +inherit autotools
> +
> +# The 3 lines below are copied from the libffi recipe, ctypes ships its own copy of the libffi sources
> +#Somehow gcc doesn't set __SOFTFP__ when passing -mfloatabi=softp :(
> +TARGET_CC_ARCH_append_armv6 = " -D__SOFTFP__"
> +TARGET_CC_ARCH_append_armv7a = " -D__SOFTFP__"
> +
> +do_configure_prepend() {
> +	autoreconf -Wcross --verbose --install --force --exclude=autopoint Modules/_ctypes/libffi || oenote "_ctypes failed to autoreconf"
> +}
> +
> +#
> +# Copy config.h and an appropriate Makefile for distutils.sysconfig,
> +# which laters uses the information out of these to compile extensions
> +#
> +do_compile_prepend() {
> +	install -d ${STAGING_INCDIR}/python${PYTHON_MAJMIN}/
> +	install -d ${STAGING_LIBDIR}/python${PYTHON_MAJMIN}/config/
> +	install -m 0644 pyconfig.h ${STAGING_INCDIR}/python${PYTHON_MAJMIN}/
> +	install -m 0644 Makefile Makefile.orig
> +	install -m 0644 Makefile Makefile.backup
> +	sed -e 's,${includedir},${STAGING_INCDIR},' < Makefile.backup > Makefile
> +	install -m 0644 Makefile Makefile.backup
> +	sed -e 's,${libdir},${STAGING_LIBDIR},' < Makefile.backup > Makefile
> +	install -m 0644 Makefile ${STAGING_LIBDIR}/python${PYTHON_MAJMIN}/config/
> +}
> +
> +do_compile() {
> +	oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/pgen \
> +		HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python \
> +		STAGING_LIBDIR=${STAGING_LIBDIR} \
> +		STAGING_INCDIR=${STAGING_INCDIR} \
> +		BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
> +		OPT="${CFLAGS}" libpython${PYTHON_MAJMIN}.so
> +
> +	oe_libinstall -so libpython${PYTHON_MAJMIN} ${STAGING_LIBDIR}
> +
> +	oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/pgen \
> +		HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python \
> +		STAGING_LIBDIR=${STAGING_LIBDIR} \
> +		STAGING_INCDIR=${STAGING_INCDIR} \
> +		BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
> +		RUNSHARED= OPT="${CFLAGS}"
> +}
> +
> +do_stage() {
> +	install -m 0644 Include/*.h ${STAGING_INCDIR}/python${PYTHON_MAJMIN}/
> +	oe_libinstall -a -so libpython${PYTHON_MAJMIN} ${STAGING_LIBDIR}
> +}
> +
> +do_install() {
> +	install -m 0644 Makefile.orig Makefile
> +	
> +	oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/pgen \
> +		HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python \
> +		STAGING_LIBDIR=${STAGING_LIBDIR} \
> +		STAGING_INCDIR=${STAGING_INCDIR} \
> +		BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
> +		DESTDIR=${D} LIBDIR=${libdir} RUNSHARED= install
> +
> +	install -m 0644 ${WORKDIR}/sitecustomize.py ${D}/${libdir}/python${PYTHON_MAJMIN}
> +
> +	# remove hardcoded ccache, see http://bugs.openembedded.net/show_bug.cgi?id=4144
> +	sed -i -e s,ccache,'$(CCACHE)', ${D}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile
> +}
> +
> +require python-${PYTHON_MAJMIN}-manifest.inc
> +
> +# manual dependency additions
> +RPROVIDES_python-core = "python"
> +RRECOMMENDS_python-core = "python-readline"
> +RRECOMMENDS_python-crypt = "openssl"
> +
> +# add sitecustomize
> +FILES_python-core += "${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py"
> +# ship 2to3
> +FILES_python-core += "${bindir}/2to3"
> +
> +# package libpython2
> +PACKAGES =+ "libpython2"
> +FILES_libpython2 = "${libdir}/libpython*.so*"
> +
> +# additional stuff -dev
> +
> +FILES_${PN}-dev = "\
> +  ${includedir} \
> +  ${libdir}/lib*${SOLIBSDEV} \
> +  ${libdir}/*.la \
> +  ${libdir}/*.a \
> +  ${libdir}/*.o \
> +  ${libdir}/pkgconfig \
> +  ${base_libdir}/*.a \
> +  ${base_libdir}/*.o \
> +  ${datadir}/aclocal \
> +  ${datadir}/pkgconfig \
> +"
> +
> +# catch debug extensions (isn't that already in python-core-dbg?)
> +FILES_python-dbg += "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/.debug"
> +
> +# catch all the rest (unsorted)
> +PACKAGES += "python-misc"
> +FILES_python-misc = "${libdir}/python${PYTHON_MAJMIN}"
> +
> +# catch manpage
> +PACKAGES += "python-man"
> +FILES_python-man = "${datadir}/man"
> -- 
> 1.6.6.1
> 
> 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel





More information about the Openembedded-devel mailing list