From 793bb465b3a6b0c883340621575b9944d7ccaf5a Mon Sep 17 00:00:00 2001 From: Nitin A Kamble Date: Mon, 8 Nov 2010 10:34:46 -0800 Subject: python, python-native upgrade from 2.6.5 to 2.6.6 Removed these patch: python-native-2.6.5/00-fix-bindir-libdir-for-cross.patch python/00-fix-bindir-libdir-for-cross.patch The upstream code has changed, and it does not need the above 2 patches (fixes) anymore. Patches rebased to the newer code: python/01-use-proper-tools-for-cross-build.patch python/04-default-is-optimized.patch python/06-avoid_usr_lib_termcap_path_in_linking.patch python/99-ignore-optimization-flag.patch Signed-off-by: Nitin A Kamble --- .../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 ---------- .../python/python-native-2.6.5/debug.patch | 27 ----- .../python/python-native-2.6.5/nohostlibs.patch | 53 --------- .../python/python-native-2.6.5/sitecustomize.py | 45 -------- .../python-native/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 ++++++++++ .../python/python-native/debug.patch | 27 +++++ .../python/python-native/nohostlibs.patch | 53 +++++++++ .../python/python-native/sitecustomize.py | 45 ++++++++ .../recipes-devtools/python/python-native_2.6.5.bb | 30 ----- .../recipes-devtools/python/python-native_2.6.6.bb | 30 +++++ .../python/00-fix-bindir-libdir-for-cross.patch | 20 ---- .../01-use-proper-tools-for-cross-build.patch | 32 +++--- .../python/python/04-default-is-optimized.patch | 28 ++--- .../06-avoid_usr_lib_termcap_path_in_linking.patch | 14 +-- .../python/99-ignore-optimization-flag.patch | 20 ++-- meta/recipes-devtools/python/python_2.6.5.bb | 124 --------------------- meta/recipes-devtools/python/python_2.6.6.bb | 122 ++++++++++++++++++++ 24 files changed, 436 insertions(+), 478 deletions(-) delete mode 100644 meta/recipes-devtools/python/python-native-2.6.5/00-fix-bindir-libdir-for-cross.patch delete mode 100644 meta/recipes-devtools/python/python-native-2.6.5/04-default-is-optimized.patch delete mode 100644 meta/recipes-devtools/python/python-native-2.6.5/10-distutils-fix-swig-parameter.patch delete mode 100644 meta/recipes-devtools/python/python-native-2.6.5/11-distutils-never-modify-shebang-line.patch delete mode 100644 meta/recipes-devtools/python/python-native-2.6.5/12-distutils-prefix-is-inside-staging-area.patch delete mode 100644 meta/recipes-devtools/python/python-native-2.6.5/debug.patch delete mode 100644 meta/recipes-devtools/python/python-native-2.6.5/nohostlibs.patch delete mode 100644 meta/recipes-devtools/python/python-native-2.6.5/sitecustomize.py create mode 100644 meta/recipes-devtools/python/python-native/04-default-is-optimized.patch create mode 100644 meta/recipes-devtools/python/python-native/10-distutils-fix-swig-parameter.patch create mode 100644 meta/recipes-devtools/python/python-native/11-distutils-never-modify-shebang-line.patch create mode 100644 meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch create mode 100644 meta/recipes-devtools/python/python-native/debug.patch create mode 100644 meta/recipes-devtools/python/python-native/nohostlibs.patch create mode 100644 meta/recipes-devtools/python/python-native/sitecustomize.py delete mode 100644 meta/recipes-devtools/python/python-native_2.6.5.bb create mode 100644 meta/recipes-devtools/python/python-native_2.6.6.bb delete mode 100644 meta/recipes-devtools/python/python/00-fix-bindir-libdir-for-cross.patch delete mode 100644 meta/recipes-devtools/python/python_2.6.5.bb create mode 100644 meta/recipes-devtools/python/python_2.6.6.bb (limited to 'meta/recipes-devtools') diff --git a/meta/recipes-devtools/python/python-native-2.6.5/00-fix-bindir-libdir-for-cross.patch b/meta/recipes-devtools/python/python-native-2.6.5/00-fix-bindir-libdir-for-cross.patch deleted file mode 100644 index 2559e3a0e4..0000000000 --- a/meta/recipes-devtools/python/python-native-2.6.5/00-fix-bindir-libdir-for-cross.patch +++ /dev/null @@ -1,20 +0,0 @@ -# $(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 - -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/meta/recipes-devtools/python/python-native-2.6.5/04-default-is-optimized.patch b/meta/recipes-devtools/python/python-native-2.6.5/04-default-is-optimized.patch deleted file mode 100644 index 5131e0ba69..0000000000 --- a/meta/recipes-devtools/python/python-native-2.6.5/04-default-is-optimized.patch +++ /dev/null @@ -1,18 +0,0 @@ -# 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 - -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/meta/recipes-devtools/python/python-native-2.6.5/10-distutils-fix-swig-parameter.patch b/meta/recipes-devtools/python/python-native-2.6.5/10-distutils-fix-swig-parameter.patch deleted file mode 100644 index f5e852a118..0000000000 --- a/meta/recipes-devtools/python/python-native-2.6.5/10-distutils-fix-swig-parameter.patch +++ /dev/null @@ -1,16 +0,0 @@ -# Some versions of SWIG do not use the extension parameter. -# Make it optional. -# Signed-Off: Michael 'Mickey' Lauer -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/meta/recipes-devtools/python/python-native-2.6.5/11-distutils-never-modify-shebang-line.patch b/meta/recipes-devtools/python/python-native-2.6.5/11-distutils-never-modify-shebang-line.patch deleted file mode 100644 index 8354e266fa..0000000000 --- a/meta/recipes-devtools/python/python-native-2.6.5/11-distutils-never-modify-shebang-line.patch +++ /dev/null @@ -1,18 +0,0 @@ -# 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 - -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/meta/recipes-devtools/python/python-native-2.6.5/12-distutils-prefix-is-inside-staging-area.patch b/meta/recipes-devtools/python/python-native-2.6.5/12-distutils-prefix-is-inside-staging-area.patch deleted file mode 100644 index aa4393679f..0000000000 --- a/meta/recipes-devtools/python/python-native-2.6.5/12-distutils-prefix-is-inside-staging-area.patch +++ /dev/null @@ -1,60 +0,0 @@ -# The proper prefix is inside our staging area. -# Signed-Off: Michael 'Mickey' Lauer - -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/meta/recipes-devtools/python/python-native-2.6.5/debug.patch b/meta/recipes-devtools/python/python-native-2.6.5/debug.patch deleted file mode 100644 index beb3adc6db..0000000000 --- a/meta/recipes-devtools/python/python-native-2.6.5/debug.patch +++ /dev/null @@ -1,27 +0,0 @@ -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/meta/recipes-devtools/python/python-native-2.6.5/nohostlibs.patch b/meta/recipes-devtools/python/python-native-2.6.5/nohostlibs.patch deleted file mode 100644 index 7020f3c2a9..0000000000 --- a/meta/recipes-devtools/python/python-native-2.6.5/nohostlibs.patch +++ /dev/null @@ -1,53 +0,0 @@ -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/meta/recipes-devtools/python/python-native-2.6.5/sitecustomize.py b/meta/recipes-devtools/python/python-native-2.6.5/sitecustomize.py deleted file mode 100644 index 273901898a..0000000000 --- a/meta/recipes-devtools/python/python-native-2.6.5/sitecustomize.py +++ /dev/null @@ -1,45 +0,0 @@ -# OpenEmbedded sitecustomize.py (C) 2002-2008 Michael 'Mickey' Lauer -# 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/meta/recipes-devtools/python/python-native/04-default-is-optimized.patch b/meta/recipes-devtools/python/python-native/04-default-is-optimized.patch new file mode 100644 index 0000000000..5131e0ba69 --- /dev/null +++ b/meta/recipes-devtools/python/python-native/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 + +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/meta/recipes-devtools/python/python-native/10-distutils-fix-swig-parameter.patch b/meta/recipes-devtools/python/python-native/10-distutils-fix-swig-parameter.patch new file mode 100644 index 0000000000..f5e852a118 --- /dev/null +++ b/meta/recipes-devtools/python/python-native/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 +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/meta/recipes-devtools/python/python-native/11-distutils-never-modify-shebang-line.patch b/meta/recipes-devtools/python/python-native/11-distutils-never-modify-shebang-line.patch new file mode 100644 index 0000000000..8354e266fa --- /dev/null +++ b/meta/recipes-devtools/python/python-native/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 + +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/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch b/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch new file mode 100644 index 0000000000..bf4366f12b --- /dev/null +++ b/meta/recipes-devtools/python/python-native/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 + +Index: Python-2.6.6/Lib/distutils/sysconfig.py +=================================================================== +--- Python-2.6.6.orig/Lib/distutils/sysconfig.py ++++ Python-2.6.6/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: +@@ -116,7 +119,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, +@@ -216,7 +222,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(): +@@ -225,7 +231,7 @@ def get_makefile_filename(): + return os.path.join(os.path.dirname(os.path.realpath(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/meta/recipes-devtools/python/python-native/debug.patch b/meta/recipes-devtools/python/python-native/debug.patch new file mode 100644 index 0000000000..beb3adc6db --- /dev/null +++ b/meta/recipes-devtools/python/python-native/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/meta/recipes-devtools/python/python-native/nohostlibs.patch b/meta/recipes-devtools/python/python-native/nohostlibs.patch new file mode 100644 index 0000000000..da2bd8f1d2 --- /dev/null +++ b/meta/recipes-devtools/python/python-native/nohostlibs.patch @@ -0,0 +1,53 @@ +Index: Python-2.6.6/setup.py +=================================================================== +--- Python-2.6.6.orig/setup.py ++++ Python-2.6.6/setup.py +@@ -356,8 +356,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. +@@ -393,10 +393,10 @@ class PyBuildExt(build_ext): + 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: +@@ -407,11 +407,8 @@ class PyBuildExt(build_ext): + # 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 = [] + +@@ -661,8 +658,7 @@ 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'], ++ elif self.compiler.find_library_file(lib_dirs, + 'termcap'): + readline_libs.append('termcap') + exts.append( Extension('readline', ['readline.c'], diff --git a/meta/recipes-devtools/python/python-native/sitecustomize.py b/meta/recipes-devtools/python/python-native/sitecustomize.py new file mode 100644 index 0000000000..273901898a --- /dev/null +++ b/meta/recipes-devtools/python/python-native/sitecustomize.py @@ -0,0 +1,45 @@ +# OpenEmbedded sitecustomize.py (C) 2002-2008 Michael 'Mickey' Lauer +# 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/meta/recipes-devtools/python/python-native_2.6.5.bb b/meta/recipes-devtools/python/python-native_2.6.5.bb deleted file mode 100644 index cb95e4b964..0000000000 --- a/meta/recipes-devtools/python/python-native_2.6.5.bb +++ /dev/null @@ -1,30 +0,0 @@ -require python.inc -DEPENDS = "openssl-native bzip2-full-native zlib-native readline-native sqlite3-native" -PR = "${INC_PR}.3" - -SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2 \ - file://00-fix-bindir-libdir-for-cross.patch \ - file://04-default-is-optimized.patch \ - file://05-enable-ctypes-cross-build.patch \ - file://10-distutils-fix-swig-parameter.patch \ - file://11-distutils-never-modify-shebang-line.patch \ - file://12-distutils-prefix-is-inside-staging-area.patch \ - file://debug.patch \ - file://nohostlibs.patch" -S = "${WORKDIR}/Python-${PV}" - -inherit native - -EXTRA_OEMAKE = '\ - BUILD_SYS="" \ - HOST_SYS="" \ - LIBC="" \ - STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} \ - STAGING_INCDIR=${STAGING_INCDIR_NATIVE} \ -' - -do_install() { - oe_runmake 'DESTDIR=${D}' install - install -d ${D}${bindir}/ - install -m 0755 Parser/pgen ${D}${bindir}/ -} diff --git a/meta/recipes-devtools/python/python-native_2.6.6.bb b/meta/recipes-devtools/python/python-native_2.6.6.bb new file mode 100644 index 0000000000..148dc587e9 --- /dev/null +++ b/meta/recipes-devtools/python/python-native_2.6.6.bb @@ -0,0 +1,30 @@ +require python.inc +DEPENDS = "openssl-native bzip2-full-native zlib-native readline-native sqlite3-native" +PR = "${INC_PR}.0" + + +SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2 \ + file://04-default-is-optimized.patch \ + file://05-enable-ctypes-cross-build.patch \ + file://10-distutils-fix-swig-parameter.patch \ + file://11-distutils-never-modify-shebang-line.patch \ + file://12-distutils-prefix-is-inside-staging-area.patch \ + file://debug.patch \ + file://nohostlibs.patch" +S = "${WORKDIR}/Python-${PV}" + +inherit native + +EXTRA_OEMAKE = '\ + BUILD_SYS="" \ + HOST_SYS="" \ + LIBC="" \ + STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} \ + STAGING_INCDIR=${STAGING_INCDIR_NATIVE} \ +' + +do_install() { + oe_runmake 'DESTDIR=${D}' install + install -d ${D}${bindir}/ + install -m 0755 Parser/pgen ${D}${bindir}/ +} diff --git a/meta/recipes-devtools/python/python/00-fix-bindir-libdir-for-cross.patch b/meta/recipes-devtools/python/python/00-fix-bindir-libdir-for-cross.patch deleted file mode 100644 index 2559e3a0e4..0000000000 --- a/meta/recipes-devtools/python/python/00-fix-bindir-libdir-for-cross.patch +++ /dev/null @@ -1,20 +0,0 @@ -# $(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 - -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/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch b/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch index e89faa4fb0..e091431ab2 100644 --- a/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch +++ b/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch @@ -2,10 +2,10 @@ # built cross-tools (this will not work), so we introduce HOSTPYTHON and HOSTPGEN. # Signed-Off: Michael 'Mickey' Lauer -Index: Python-2.6.1/Makefile.pre.in +Index: Python-2.6.6/Makefile.pre.in =================================================================== ---- Python-2.6.1.orig/Makefile.pre.in -+++ Python-2.6.1/Makefile.pre.in +--- Python-2.6.6.orig/Makefile.pre.in ++++ Python-2.6.6/Makefile.pre.in @@ -175,6 +175,7 @@ UNICODE_OBJS= @UNICODE_OBJS@ PYTHON= python$(EXE) @@ -27,14 +27,14 @@ Index: Python-2.6.1/Makefile.pre.in # 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;; \ +- *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \ +- *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \ ++ *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py -q build;; \ ++ *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py build;; \ esac # Build static library -@@ -513,7 +514,7 @@ Modules/python.o: $(srcdir)/Modules/pyth +@@ -517,7 +518,7 @@ Modules/python.o: $(srcdir)/Modules/pyth $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT) -@$(INSTALL) -d Include @@ -43,7 +43,7 @@ Index: Python-2.6.1/Makefile.pre.in $(PGEN): $(PGENOBJS) $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN) -@@ -879,23 +880,23 @@ libinstall: build_all $(srcdir)/Lib/$(PL +@@ -887,23 +888,23 @@ libinstall: build_all $(srcdir)/Lib/$(PL done $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ @@ -72,7 +72,7 @@ Index: Python-2.6.1/Makefile.pre.in # Create the PLATDIR source directory, if one wasn't distributed.. $(srcdir)/Lib/$(PLATDIR): -@@ -993,7 +994,7 @@ libainstall: all +@@ -1001,7 +1002,7 @@ libainstall: all # Install the dynamically loadable modules # This goes into $(exec_prefix) sharedinstall: @@ -81,11 +81,11 @@ Index: Python-2.6.1/Makefile.pre.in --prefix=$(prefix) \ --install-scripts=$(BINDIR) \ --install-platlib=$(DESTSHARED) \ -Index: Python-2.6.1/setup.py +Index: Python-2.6.6/setup.py =================================================================== ---- Python-2.6.1.orig/setup.py -+++ Python-2.6.1/setup.py -@@ -276,6 +276,7 @@ class PyBuildExt(build_ext): +--- Python-2.6.6.orig/setup.py ++++ Python-2.6.6/setup.py +@@ -322,6 +322,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) @@ -93,7 +93,7 @@ Index: Python-2.6.1/setup.py assert not self.inplace basename, tail = os.path.splitext(ext_filename) newname = basename + "_failed" + tail -@@ -310,8 +311,8 @@ class PyBuildExt(build_ext): +@@ -356,8 +357,8 @@ class PyBuildExt(build_ext): def detect_modules(self): # Ensure that /usr/local is always used @@ -104,7 +104,7 @@ Index: Python-2.6.1/setup.py # Add paths specified in the environment variables LDFLAGS and # CPPFLAGS for header and library files. -@@ -410,6 +411,9 @@ class PyBuildExt(build_ext): +@@ -456,6 +457,9 @@ class PyBuildExt(build_ext): # XXX Omitted modules: gl, pure, dl, SGI-specific modules diff --git a/meta/recipes-devtools/python/python/04-default-is-optimized.patch b/meta/recipes-devtools/python/python/04-default-is-optimized.patch index 805f4f696c..c4617ab863 100644 --- a/meta/recipes-devtools/python/python/04-default-is-optimized.patch +++ b/meta/recipes-devtools/python/python/04-default-is-optimized.patch @@ -3,10 +3,10 @@ # of opt-out. # Signed-Off: Michael 'Mickey' Lauer -Index: Python-2.6.1/Python/compile.c +Index: Python-2.6.6/Python/compile.c =================================================================== ---- Python-2.6.1.orig/Python/compile.c -+++ Python-2.6.1/Python/compile.c +--- Python-2.6.6.orig/Python/compile.c ++++ Python-2.6.6/Python/compile.c @@ -32,7 +32,7 @@ #include "symtable.h" #include "opcode.h" @@ -16,10 +16,10 @@ Index: Python-2.6.1/Python/compile.c #define DEFAULT_BLOCK_SIZE 16 #define DEFAULT_BLOCKS 8 -Index: Python-2.6.1/Modules/main.c +Index: Python-2.6.6/Modules/main.c =================================================================== ---- Python-2.6.1.orig/Modules/main.c -+++ Python-2.6.1/Modules/main.c +--- Python-2.6.6.orig/Modules/main.c ++++ Python-2.6.6/Modules/main.c @@ -40,7 +40,7 @@ static char **orig_argv; static int orig_argc; @@ -39,14 +39,14 @@ Index: Python-2.6.1/Modules/main.c -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) +@@ -328,8 +327,8 @@ Py_Main(int argc, char **argv) - /* case 'J': reserved for Jython */ + /* case 'J': reserved for Jython */ -- case 'O': -- Py_OptimizeFlag++; -+ case 'N': -+ Py_OptimizeFlag=0; - break; +- case 'O': +- Py_OptimizeFlag++; ++ case 'N': ++ Py_OptimizeFlag=0; + break; - case 'B': + case 'B': diff --git a/meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch b/meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch index 30aa50dd44..68c9d5cfd5 100644 --- a/meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch +++ b/meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch @@ -7,14 +7,14 @@ This Patch fixes this issue in the python build environment. 11 Oct 2010 Nitin A Kamble -Index: Python-2.6.5/setup.py +Index: Python-2.6.6/setup.py =================================================================== ---- Python-2.6.5.orig/setup.py -+++ Python-2.6.5/setup.py -@@ -591,12 +591,10 @@ class PyBuildExt(build_ext): - readline_libs.append('ncurses') - elif self.compiler.find_library_file(lib_dirs, 'curses'): - readline_libs.append('curses') +--- Python-2.6.6.orig/setup.py ++++ Python-2.6.6/setup.py +@@ -665,12 +665,10 @@ 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'], + elif self.compiler.find_library_file(lib_dirs, diff --git a/meta/recipes-devtools/python/python/99-ignore-optimization-flag.patch b/meta/recipes-devtools/python/python/99-ignore-optimization-flag.patch index 02dc44c847..0bd1a2d4d0 100644 --- a/meta/recipes-devtools/python/python/99-ignore-optimization-flag.patch +++ b/meta/recipes-devtools/python/python/99-ignore-optimization-flag.patch @@ -3,17 +3,17 @@ # # Signed-off-by: Denys Dmytriyenko -Index: Python-2.6.1/Modules/main.c +Index: Python-2.6.6/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) +--- Python-2.6.6.orig/Modules/main.c ++++ Python-2.6.6/Modules/main.c +@@ -327,6 +327,9 @@ Py_Main(int argc, char **argv) - /* case 'J': reserved for Jython */ + /* case 'J': reserved for Jython */ -+ case 'O': /* ignore it */ -+ break; ++ case 'O': /* ignore it */ ++ break; + - case 'N': - Py_OptimizeFlag=0; - break; + case 'N': + Py_OptimizeFlag=0; + break; diff --git a/meta/recipes-devtools/python/python_2.6.5.bb b/meta/recipes-devtools/python/python_2.6.5.bb deleted file mode 100644 index ec5442dc7c..0000000000 --- a/meta/recipes-devtools/python/python_2.6.5.bb +++ /dev/null @@ -1,124 +0,0 @@ -require python.inc -DEPENDS = "python-native db gdbm openssl readline sqlite3 zlib" -DEPENDS_sharprom = "python-native db readline zlib gdbm openssl" -# set to .0 on every increase of INC_PR -PR = "${INC_PR}.3" - -SRC_URI = "\ - http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2 \ - file://00-fix-bindir-libdir-for-cross.patch \ - file://01-use-proper-tools-for-cross-build.patch \ - file://02-remove-test-for-cross.patch \ - file://03-fix-tkinter-detection.patch \ - file://04-default-is-optimized.patch \ - file://05-enable-ctypes-cross-build.patch \ - file://06-avoid_usr_lib_termcap_path_in_linking.patch \ - file://99-ignore-optimization-flag.patch \ - file://sitecustomize.py \ -" -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} \ - OPT="${CFLAGS}" -} - -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} 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_${PN}-core = "${PN}" -RRECOMMENDS_${PN}-core = "${PN}-readline" -RRECOMMENDS_${PN}-crypt = "openssl" - -# add sitecustomize -FILES_${PN}-core += "${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py" -# ship 2to3 -FILES_${PN}-core += "${bindir}/2to3" - -# package libpython2 -PACKAGES =+ "lib${PN}2" -FILES_lib${PN}2 = "${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_${PN}-dbg += "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/.debug" - -# catch all the rest (unsorted) -PACKAGES += "${PN}-misc" -FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN}" - -# catch manpage -PACKAGES += "${PN}-man" -FILES_${PN}-man = "${datadir}/man" - -BBCLASSEXTEND = "nativesdk" diff --git a/meta/recipes-devtools/python/python_2.6.6.bb b/meta/recipes-devtools/python/python_2.6.6.bb new file mode 100644 index 0000000000..fa0e294158 --- /dev/null +++ b/meta/recipes-devtools/python/python_2.6.6.bb @@ -0,0 +1,122 @@ +require python.inc +DEPENDS = "python-native db gdbm openssl readline sqlite3 zlib" +DEPENDS_sharprom = "python-native db readline zlib gdbm openssl" +PR = "${INC_PR}.0" + +SRC_URI = "\ + http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2 \ + file://01-use-proper-tools-for-cross-build.patch \ + file://02-remove-test-for-cross.patch \ + file://03-fix-tkinter-detection.patch \ + file://04-default-is-optimized.patch \ + file://05-enable-ctypes-cross-build.patch \ + file://06-avoid_usr_lib_termcap_path_in_linking.patch \ + file://99-ignore-optimization-flag.patch \ + file://sitecustomize.py \ +" +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} \ + OPT="${CFLAGS}" +} + +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} 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_${PN}-core = "${PN}" +RRECOMMENDS_${PN}-core = "${PN}-readline" +RRECOMMENDS_${PN}-crypt = "openssl" + +# add sitecustomize +FILES_${PN}-core += "${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py" +# ship 2to3 +FILES_${PN}-core += "${bindir}/2to3" + +# package libpython2 +PACKAGES =+ "lib${PN}2" +FILES_lib${PN}2 = "${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_${PN}-dbg += "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/.debug" + +# catch all the rest (unsorted) +PACKAGES += "${PN}-misc" +FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN}" + +# catch manpage +PACKAGES += "${PN}-man" +FILES_${PN}-man = "${datadir}/man" + +BBCLASSEXTEND = "nativesdk" -- cgit v1.2.3