From 01103b2f299fd9aa05ecae40760c2011f235f710 Mon Sep 17 00:00:00 2001 From: Nitin A Kamble Date: Fri, 14 Oct 2011 07:06:13 +0000 Subject: python, python-native: upgrade from 2.6.6 to 2.7.2 Rebased these patches to the newer code modified: python-native/nohostlibs.patch modified: python/01-use-proper-tools-for-cross-build.patch modified: python/06-avoid_usr_lib_termcap_path_in_linking.patch modified: python/06-ctypes-libffi-fix-configure.patch modified: python/multilib.patch Deleted these patches are the are now upstream deleted: python/02-remove-test-for-cross.patch deleted: python/security_issue_2254_fix.patch Added this patch to python-native new file: python-native/multilib.patch Updated site config file for python modified: ../../site/common-linux : add ac_cv_have_long_long_format for python avoid this error in python: Include/pyport.h:243:13: error: #error "This platform's pyconfig.h needs to define PY_FORMAT_LONG_LONG" Updated default python version modified: ../../conf/distro/include/default-versions.inc (From OE-Core rev: b284e9a512860b8a8380be80f96cebce6b92ff80) Signed-off-by: Nitin A Kamble Signed-off-by: Martin Jansa Signed-off-by: Richard Purdie --- meta/conf/distro/include/default-versions.inc | 6 +- .../python/python-2.6-manifest.inc | 268 --------------------- .../python/python-2.7-manifest.inc | 268 +++++++++++++++++++++ .../python/python-native/multilib.patch | 240 ++++++++++++++++++ .../python/python-native/nohostlibs.patch | 36 ++- .../recipes-devtools/python/python-native_2.6.6.bb | 48 ---- .../recipes-devtools/python/python-native_2.7.2.bb | 43 ++++ meta/recipes-devtools/python/python.inc | 17 +- .../01-use-proper-tools-for-cross-build.patch | 80 +++--- .../python/python/02-remove-test-for-cross.patch | 108 --------- .../06-avoid_usr_lib_termcap_path_in_linking.patch | 12 +- .../python/06-ctypes-libffi-fix-configure.patch | 42 ++-- meta/recipes-devtools/python/python/multilib.patch | 126 +++++----- .../python/python/security_issue_2254_fix.patch | 184 -------------- meta/recipes-devtools/python/python_2.6.6.bb | 150 ------------ meta/recipes-devtools/python/python_2.7.2.bb | 144 +++++++++++ meta/site/common-linux | 3 + 17 files changed, 872 insertions(+), 903 deletions(-) delete mode 100644 meta/recipes-devtools/python/python-2.6-manifest.inc create mode 100644 meta/recipes-devtools/python/python-2.7-manifest.inc create mode 100644 meta/recipes-devtools/python/python-native/multilib.patch delete mode 100644 meta/recipes-devtools/python/python-native_2.6.6.bb create mode 100644 meta/recipes-devtools/python/python-native_2.7.2.bb delete mode 100644 meta/recipes-devtools/python/python/02-remove-test-for-cross.patch delete mode 100644 meta/recipes-devtools/python/python/security_issue_2254_fix.patch delete mode 100644 meta/recipes-devtools/python/python_2.6.6.bb create mode 100644 meta/recipes-devtools/python/python_2.7.2.bb (limited to 'meta') diff --git a/meta/conf/distro/include/default-versions.inc b/meta/conf/distro/include/default-versions.inc index e3ef1e6661..90ff005089 100644 --- a/meta/conf/distro/include/default-versions.inc +++ b/meta/conf/distro/include/default-versions.inc @@ -4,9 +4,9 @@ PREFERRED_VERSION_pulseaudio ?= "0.9.23" # Force the python versions in one place -PYTHON_BASEVERSION ?= "2.6" -PREFERRED_VERSION_python ?= "2.6.6" -PREFERRED_VERSION_python-native ?= "2.6.6" +PYTHON_BASEVERSION ?= "2.7" +PREFERRED_VERSION_python ?= "2.7.2" +PREFERRED_VERSION_python-native ?= "2.7.2" # Force the older version of liberation-fonts until we fix the fontforge issue PREFERRED_VERSION_liberation-fonts ?= "1.04" diff --git a/meta/recipes-devtools/python/python-2.6-manifest.inc b/meta/recipes-devtools/python/python-2.6-manifest.inc deleted file mode 100644 index e3ebe4141e..0000000000 --- a/meta/recipes-devtools/python/python-2.6-manifest.inc +++ /dev/null @@ -1,268 +0,0 @@ - -# WARNING: This file is AUTO GENERATED: Manual edits will be lost next time I regenerate the file. -# Generator: '../../../scripts/contrib/python/generate-manifest-2.6.py' Version 20110222 (C) 2002-2010 Michael 'Mickey' Lauer -# Visit the Python for Embedded Systems Site => http://www.Vanille.de/projects/python.spy - - - -PROVIDES+="${PN}-audio ${PN}-bsddb ${PN}-codecs ${PN}-compile ${PN}-compiler ${PN}-compression ${PN}-core ${PN}-crypt ${PN}-ctypes ${PN}-curses ${PN}-datetime ${PN}-db ${PN}-debugger ${PN}-dev ${PN}-difflib ${PN}-distutils ${PN}-doctest ${PN}-elementtree ${PN}-email ${PN}-fcntl ${PN}-gdbm ${PN}-hotshot ${PN}-html ${PN}-idle ${PN}-image ${PN}-io ${PN}-json ${PN}-lang ${PN}-logging ${PN}-mailbox ${PN}-math ${PN}-mime ${PN}-mmap ${PN}-multiprocessing ${PN}-netclient ${PN}-netserver ${PN}-numbers ${PN}-pickle ${PN}-pkgutil ${PN}-pprint ${PN}-profile ${PN}-pydoc ${PN}-re ${PN}-readline ${PN}-resource ${PN}-robotparser ${PN}-shell ${PN}-smtpd ${PN}-sqlite3 ${PN}-sqlite3-tests ${PN}-stringold ${PN}-subprocess ${PN}-syslog ${PN}-terminal ${PN}-tests ${PN}-textutils ${PN}-threading ${PN}-tkinter ${PN}-unittest ${PN}-unixadmin ${PN}-xml ${PN}-xmlrpc ${PN}-zlib " - -PACKAGES="${PN}-dbg ${PN}-audio ${PN}-bsddb ${PN}-codecs ${PN}-compile ${PN}-compiler ${PN}-compression ${PN}-core ${PN}-crypt ${PN}-ctypes ${PN}-curses ${PN}-datetime ${PN}-db ${PN}-debugger ${PN}-dev ${PN}-difflib ${PN}-distutils ${PN}-doctest ${PN}-elementtree ${PN}-email ${PN}-fcntl ${PN}-gdbm ${PN}-hotshot ${PN}-html ${PN}-idle ${PN}-image ${PN}-io ${PN}-json ${PN}-lang ${PN}-logging ${PN}-mailbox ${PN}-math ${PN}-mime ${PN}-mmap ${PN}-multiprocessing ${PN}-netclient ${PN}-netserver ${PN}-numbers ${PN}-pickle ${PN}-pkgutil ${PN}-pprint ${PN}-profile ${PN}-pydoc ${PN}-re ${PN}-readline ${PN}-resource ${PN}-robotparser ${PN}-shell ${PN}-smtpd ${PN}-sqlite3 ${PN}-sqlite3-tests ${PN}-stringold ${PN}-subprocess ${PN}-syslog ${PN}-terminal ${PN}-tests ${PN}-textutils ${PN}-threading ${PN}-tkinter ${PN}-unittest ${PN}-unixadmin ${PN}-xml ${PN}-xmlrpc ${PN}-zlib ${PN}-modules" - -DESCRIPTION_${PN}-audio="Python Audio Handling" -RDEPENDS_${PN}-audio="${PN}-core" -FILES_${PN}-audio="${libdir}/python2.6/wave.* ${libdir}/python2.6/chunk.* ${libdir}/python2.6/sndhdr.* ${libdir}/python2.6/lib-dynload/ossaudiodev.so ${libdir}/python2.6/lib-dynload/audioop.so " - -DESCRIPTION_${PN}-bsddb="Python Berkeley Database Bindings" -RDEPENDS_${PN}-bsddb="${PN}-core" -FILES_${PN}-bsddb="${libdir}/python2.6/bsddb ${libdir}/python2.6/lib-dynload/_bsddb.so " - -DESCRIPTION_${PN}-codecs="Python Codecs, Encodings & i18n Support" -RDEPENDS_${PN}-codecs="${PN}-core ${PN}-lang" -FILES_${PN}-codecs="${libdir}/python2.6/codecs.* ${libdir}/python2.6/encodings ${libdir}/python2.6/gettext.* ${libdir}/python2.6/locale.* ${libdir}/python2.6/lib-dynload/_locale.so ${libdir}/python2.6/lib-dynload/unicodedata.so ${libdir}/python2.6/stringprep.* ${libdir}/python2.6/xdrlib.* " - -DESCRIPTION_${PN}-compile="Python Bytecode Compilation Support" -RDEPENDS_${PN}-compile="${PN}-core" -FILES_${PN}-compile="${libdir}/python2.6/py_compile.* ${libdir}/python2.6/compileall.* " - -DESCRIPTION_${PN}-compiler="Python Compiler Support" -RDEPENDS_${PN}-compiler="${PN}-core" -FILES_${PN}-compiler="${libdir}/python2.6/compiler " - -DESCRIPTION_${PN}-compression="Python High Level Compression Support" -RDEPENDS_${PN}-compression="${PN}-core ${PN}-zlib" -FILES_${PN}-compression="${libdir}/python2.6/gzip.* ${libdir}/python2.6/zipfile.* ${libdir}/python2.6/tarfile.* ${libdir}/python2.6/lib-dynload/bz2.so " - -DESCRIPTION_${PN}-core="Python Interpreter and core modules (needed!)" -RDEPENDS_${PN}-core="" -FILES_${PN}-core="${libdir}/python2.6/__future__.* ${libdir}/python2.6/_abcoll.* ${libdir}/python2.6/abc.* ${libdir}/python2.6/copy.* ${libdir}/python2.6/copy_reg.* ${libdir}/python2.6/ConfigParser.* ${libdir}/python2.6/genericpath.* ${libdir}/python2.6/getopt.* ${libdir}/python2.6/linecache.* ${libdir}/python2.6/new.* ${libdir}/python2.6/os.* ${libdir}/python2.6/posixpath.* ${libdir}/python2.6/struct.* ${libdir}/python2.6/warnings.* ${libdir}/python2.6/site.* ${libdir}/python2.6/stat.* ${libdir}/python2.6/UserDict.* ${libdir}/python2.6/UserList.* ${libdir}/python2.6/UserString.* ${libdir}/python2.6/lib-dynload/binascii.so ${libdir}/python2.6/lib-dynload/_struct.so ${libdir}/python2.6/lib-dynload/time.so ${libdir}/python2.6/lib-dynload/xreadlines.so ${libdir}/python2.6/types.* ${libdir}/python2.6/platform.* ${bindir}/python* " - -DESCRIPTION_${PN}-crypt="Python Basic Cryptographic and Hashing Support" -RDEPENDS_${PN}-crypt="${PN}-core" -FILES_${PN}-crypt="${libdir}/python2.6/hashlib.* ${libdir}/python2.6/md5.* ${libdir}/python2.6/sha.* ${libdir}/python2.6/lib-dynload/crypt.so ${libdir}/python2.6/lib-dynload/_hashlib.so ${libdir}/python2.6/lib-dynload/_sha256.so ${libdir}/python2.6/lib-dynload/_sha512.so " - -DESCRIPTION_${PN}-ctypes="Python C Types Support" -RDEPENDS_${PN}-ctypes="${PN}-core" -FILES_${PN}-ctypes="${libdir}/python2.6/ctypes ${libdir}/python2.6/lib-dynload/_ctypes.so " - -DESCRIPTION_${PN}-curses="Python Curses Support" -RDEPENDS_${PN}-curses="${PN}-core" -FILES_${PN}-curses="${libdir}/python2.6/curses ${libdir}/python2.6/lib-dynload/_curses.so ${libdir}/python2.6/lib-dynload/_curses_panel.so " - -DESCRIPTION_${PN}-datetime="Python Calendar and Time support" -RDEPENDS_${PN}-datetime="${PN}-core ${PN}-codecs" -FILES_${PN}-datetime="${libdir}/python2.6/_strptime.* ${libdir}/python2.6/calendar.* ${libdir}/python2.6/lib-dynload/datetime.so " - -DESCRIPTION_${PN}-db="Python File-Based Database Support" -RDEPENDS_${PN}-db="${PN}-core" -FILES_${PN}-db="${libdir}/python2.6/anydbm.* ${libdir}/python2.6/dumbdbm.* ${libdir}/python2.6/whichdb.* " - -DESCRIPTION_${PN}-debugger="Python Debugger" -RDEPENDS_${PN}-debugger="${PN}-core ${PN}-io ${PN}-lang ${PN}-re ${PN}-stringold ${PN}-shell ${PN}-pprint" -FILES_${PN}-debugger="${libdir}/python2.6/bdb.* ${libdir}/python2.6/pdb.* " - -DESCRIPTION_${PN}-dev="Python Development Package" -RDEPENDS_${PN}-dev="${PN}-core" -FILES_${PN}-dev="${includedir} ${libdir}/libpython2.6.so " - -DESCRIPTION_${PN}-difflib="Python helpers for computing deltas between objects." -RDEPENDS_${PN}-difflib="${PN}-lang ${PN}-re" -FILES_${PN}-difflib="${libdir}/python2.6/difflib.* " - -DESCRIPTION_${PN}-distutils="Python Distribution Utilities" -RDEPENDS_${PN}-distutils="${PN}-core" -FILES_${PN}-distutils="${libdir}/python2.6/config ${libdir}/python2.6/distutils " - -DESCRIPTION_${PN}-doctest="Python framework for running examples in docstrings." -RDEPENDS_${PN}-doctest="${PN}-core ${PN}-lang ${PN}-io ${PN}-re ${PN}-unittest ${PN}-debugger ${PN}-difflib" -FILES_${PN}-doctest="${libdir}/python2.6/doctest.* " - -DESCRIPTION_${PN}-elementtree="Python elementree" -RDEPENDS_${PN}-elementtree="${PN}-core" -FILES_${PN}-elementtree="${libdir}/python2.6/lib-dynload/_elementtree.so " - -DESCRIPTION_${PN}-email="Python Email Support" -RDEPENDS_${PN}-email="${PN}-core ${PN}-io ${PN}-re ${PN}-mime ${PN}-audio ${PN}-image ${PN}-netclient" -FILES_${PN}-email="${libdir}/python2.6/imaplib.* ${libdir}/python2.6/email " - -DESCRIPTION_${PN}-fcntl="Python's fcntl Interface" -RDEPENDS_${PN}-fcntl="${PN}-core" -FILES_${PN}-fcntl="${libdir}/python2.6/lib-dynload/fcntl.so " - -DESCRIPTION_${PN}-gdbm="Python GNU Database Support" -RDEPENDS_${PN}-gdbm="${PN}-core" -FILES_${PN}-gdbm="${libdir}/python2.6/lib-dynload/gdbm.so " - -DESCRIPTION_${PN}-hotshot="Python Hotshot Profiler" -RDEPENDS_${PN}-hotshot="${PN}-core" -FILES_${PN}-hotshot="${libdir}/python2.6/hotshot ${libdir}/python2.6/lib-dynload/_hotshot.so " - -DESCRIPTION_${PN}-html="Python HTML Processing" -RDEPENDS_${PN}-html="${PN}-core" -FILES_${PN}-html="${libdir}/python2.6/formatter.* ${libdir}/python2.6/htmlentitydefs.* ${libdir}/python2.6/htmllib.* ${libdir}/python2.6/markupbase.* ${libdir}/python2.6/sgmllib.* " - -DESCRIPTION_${PN}-idle="Python Integrated Development Environment" -RDEPENDS_${PN}-idle="${PN}-core ${PN}-tkinter" -FILES_${PN}-idle="${bindir}/idle ${libdir}/python2.6/idlelib " - -DESCRIPTION_${PN}-image="Python Graphical Image Handling" -RDEPENDS_${PN}-image="${PN}-core" -FILES_${PN}-image="${libdir}/python2.6/colorsys.* ${libdir}/python2.6/imghdr.* ${libdir}/python2.6/lib-dynload/imageop.so ${libdir}/python2.6/lib-dynload/rgbimg.so " - -DESCRIPTION_${PN}-io="Python Low-Level I/O" -RDEPENDS_${PN}-io="${PN}-core ${PN}-math" -FILES_${PN}-io="${libdir}/python2.6/lib-dynload/_socket.so ${libdir}/python2.6/lib-dynload/_ssl.so ${libdir}/python2.6/lib-dynload/select.so ${libdir}/python2.6/lib-dynload/termios.so ${libdir}/python2.6/lib-dynload/cStringIO.so ${libdir}/python2.6/pipes.* ${libdir}/python2.6/socket.* ${libdir}/python2.6/ssl.* ${libdir}/python2.6/tempfile.* ${libdir}/python2.6/StringIO.* " - -DESCRIPTION_${PN}-json="Python JSON Support" -RDEPENDS_${PN}-json="${PN}-core ${PN}-math ${PN}-re" -FILES_${PN}-json="${libdir}/python2.6/json " - -DESCRIPTION_${PN}-lang="Python Low-Level Language Support" -RDEPENDS_${PN}-lang="${PN}-core" -FILES_${PN}-lang="${libdir}/python2.6/lib-dynload/_bisect.so ${libdir}/python2.6/lib-dynload/_collections.so ${libdir}/python2.6/lib-dynload/_heapq.so ${libdir}/python2.6/lib-dynload/_weakref.so ${libdir}/python2.6/lib-dynload/_functools.so ${libdir}/python2.6/lib-dynload/array.so ${libdir}/python2.6/lib-dynload/itertools.so ${libdir}/python2.6/lib-dynload/operator.so ${libdir}/python2.6/lib-dynload/parser.so ${libdir}/python2.6/atexit.* ${libdir}/python2.6/bisect.* ${libdir}/python2.6/code.* ${libdir}/python2.6/codeop.* ${libdir}/python2.6/collections.* ${libdir}/python2.6/dis.* ${libdir}/python2.6/functools.* ${libdir}/python2.6/heapq.* ${libdir}/python2.6/inspect.* ${libdir}/python2.6/keyword.* ${libdir}/python2.6/opcode.* ${libdir}/python2.6/symbol.* ${libdir}/python2.6/repr.* ${libdir}/python2.6/token.* ${libdir}/python2.6/tokenize.* ${libdir}/python2.6/traceback.* ${libdir}/python2.6/weakref.* " - -DESCRIPTION_${PN}-logging="Python Logging Support" -RDEPENDS_${PN}-logging="${PN}-core ${PN}-io ${PN}-lang ${PN}-pickle ${PN}-stringold" -FILES_${PN}-logging="${libdir}/python2.6/logging " - -DESCRIPTION_${PN}-mailbox="Python Mailbox Format Support" -RDEPENDS_${PN}-mailbox="${PN}-core ${PN}-mime" -FILES_${PN}-mailbox="${libdir}/python2.6/mailbox.* " - -DESCRIPTION_${PN}-math="Python Math Support" -RDEPENDS_${PN}-math="${PN}-core" -FILES_${PN}-math="${libdir}/python2.6/lib-dynload/cmath.so ${libdir}/python2.6/lib-dynload/math.so ${libdir}/python2.6/lib-dynload/_random.so ${libdir}/python2.6/random.* ${libdir}/python2.6/sets.* " - -DESCRIPTION_${PN}-mime="Python MIME Handling APIs" -RDEPENDS_${PN}-mime="${PN}-core ${PN}-io" -FILES_${PN}-mime="${libdir}/python2.6/mimetools.* ${libdir}/python2.6/uu.* ${libdir}/python2.6/quopri.* ${libdir}/python2.6/rfc822.* " - -DESCRIPTION_${PN}-mmap="Python Memory-Mapped-File Support" -RDEPENDS_${PN}-mmap="${PN}-core ${PN}-io" -FILES_${PN}-mmap="${libdir}/python2.6/lib-dynload/mmap.so " - -DESCRIPTION_${PN}-multiprocessing="Python Multiprocessing Support" -RDEPENDS_${PN}-multiprocessing="${PN}-core ${PN}-io ${PN}-lang" -FILES_${PN}-multiprocessing="${libdir}/python2.6/lib-dynload/_multiprocessing.so ${libdir}/python2.6/multiprocessing " - -DESCRIPTION_${PN}-netclient="Python Internet Protocol Clients" -RDEPENDS_${PN}-netclient="${PN}-core ${PN}-crypt ${PN}-datetime ${PN}-io ${PN}-lang ${PN}-logging ${PN}-mime" -FILES_${PN}-netclient="${libdir}/python2.6/*Cookie*.* ${libdir}/python2.6/base64.* ${libdir}/python2.6/cookielib.* ${libdir}/python2.6/ftplib.* ${libdir}/python2.6/gopherlib.* ${libdir}/python2.6/hmac.* ${libdir}/python2.6/httplib.* ${libdir}/python2.6/mimetypes.* ${libdir}/python2.6/nntplib.* ${libdir}/python2.6/poplib.* ${libdir}/python2.6/smtplib.* ${libdir}/python2.6/telnetlib.* ${libdir}/python2.6/urllib.* ${libdir}/python2.6/urllib2.* ${libdir}/python2.6/urlparse.* ${libdir}/python2.6/uuid.* ${libdir}/python2.6/rfc822.* ${libdir}/python2.6/mimetools.* " - -DESCRIPTION_${PN}-netserver="Python Internet Protocol Servers" -RDEPENDS_${PN}-netserver="${PN}-core ${PN}-netclient" -FILES_${PN}-netserver="${libdir}/python2.6/cgi.* ${libdir}/python2.6/*HTTPServer.* ${libdir}/python2.6/SocketServer.* " - -DESCRIPTION_${PN}-numbers="Python Number APIs" -RDEPENDS_${PN}-numbers="${PN}-core ${PN}-lang ${PN}-re" -FILES_${PN}-numbers="${libdir}/python2.6/decimal.* ${libdir}/python2.6/numbers.* " - -DESCRIPTION_${PN}-pickle="Python Persistence Support" -RDEPENDS_${PN}-pickle="${PN}-core ${PN}-codecs ${PN}-io ${PN}-re" -FILES_${PN}-pickle="${libdir}/python2.6/pickle.* ${libdir}/python2.6/shelve.* ${libdir}/python2.6/lib-dynload/cPickle.so " - -DESCRIPTION_${PN}-pkgutil="Python Package Extension Utility Support" -RDEPENDS_${PN}-pkgutil="${PN}-core" -FILES_${PN}-pkgutil="${libdir}/python2.6/pkgutil.* " - -DESCRIPTION_${PN}-pprint="Python Pretty-Print Support" -RDEPENDS_${PN}-pprint="${PN}-core" -FILES_${PN}-pprint="${libdir}/python2.6/pprint.* " - -DESCRIPTION_${PN}-profile="Python Basic Profiling Support" -RDEPENDS_${PN}-profile="${PN}-core ${PN}-textutils" -FILES_${PN}-profile="${libdir}/python2.6/profile.* ${libdir}/python2.6/pstats.* ${libdir}/python2.6/cProfile.* ${libdir}/python2.6/lib-dynload/_lsprof.so " - -DESCRIPTION_${PN}-pydoc="Python Interactive Help Support" -RDEPENDS_${PN}-pydoc="${PN}-core ${PN}-lang ${PN}-stringold ${PN}-re" -FILES_${PN}-pydoc="${bindir}/pydoc ${libdir}/python2.6/pydoc.* " - -DESCRIPTION_${PN}-re="Python Regular Expression APIs" -RDEPENDS_${PN}-re="${PN}-core" -FILES_${PN}-re="${libdir}/python2.6/re.* ${libdir}/python2.6/sre.* ${libdir}/python2.6/sre_compile.* ${libdir}/python2.6/sre_constants* ${libdir}/python2.6/sre_parse.* " - -DESCRIPTION_${PN}-readline="Python Readline Support" -RDEPENDS_${PN}-readline="${PN}-core" -FILES_${PN}-readline="${libdir}/python2.6/lib-dynload/readline.so ${libdir}/python2.6/rlcompleter.* " - -DESCRIPTION_${PN}-resource="Python Resource Control Interface" -RDEPENDS_${PN}-resource="${PN}-core" -FILES_${PN}-resource="${libdir}/python2.6/lib-dynload/resource.so " - -DESCRIPTION_${PN}-robotparser="Python robots.txt parser" -RDEPENDS_${PN}-robotparser="${PN}-core ${PN}-netclient" -FILES_${PN}-robotparser="${libdir}/python2.6/robotparser.* " - -DESCRIPTION_${PN}-shell="Python Shell-Like Functionality" -RDEPENDS_${PN}-shell="${PN}-core ${PN}-re" -FILES_${PN}-shell="${libdir}/python2.6/cmd.* ${libdir}/python2.6/commands.* ${libdir}/python2.6/dircache.* ${libdir}/python2.6/fnmatch.* ${libdir}/python2.6/glob.* ${libdir}/python2.6/popen2.* ${libdir}/python2.6/shlex.* ${libdir}/python2.6/shutil.* " - -DESCRIPTION_${PN}-smtpd="Python Simple Mail Transport Daemon" -RDEPENDS_${PN}-smtpd="${PN}-core ${PN}-netserver ${PN}-email ${PN}-mime" -FILES_${PN}-smtpd="${bindir}/smtpd.* " - -DESCRIPTION_${PN}-sqlite3="Python Sqlite3 Database Support" -RDEPENDS_${PN}-sqlite3="${PN}-core ${PN}-datetime ${PN}-lang ${PN}-crypt ${PN}-io ${PN}-threading ${PN}-zlib" -FILES_${PN}-sqlite3="${libdir}/python2.6/lib-dynload/_sqlite3.so ${libdir}/python2.6/sqlite3/dbapi2.* ${libdir}/python2.6/sqlite3/__init__.* ${libdir}/python2.6/sqlite3/dump.* " - -DESCRIPTION_${PN}-sqlite3-tests="Python Sqlite3 Database Support Tests" -RDEPENDS_${PN}-sqlite3-tests="${PN}-core ${PN}-sqlite3" -FILES_${PN}-sqlite3-tests="${libdir}/python2.6/sqlite3/test " - -DESCRIPTION_${PN}-stringold="Python String APIs [deprecated]" -RDEPENDS_${PN}-stringold="${PN}-core ${PN}-re" -FILES_${PN}-stringold="${libdir}/python2.6/lib-dynload/strop.so ${libdir}/python2.6/string.* " - -DESCRIPTION_${PN}-subprocess="Python Subprocess Support" -RDEPENDS_${PN}-subprocess="${PN}-core ${PN}-io ${PN}-re ${PN}-fcntl ${PN}-pickle" -FILES_${PN}-subprocess="${libdir}/python2.6/subprocess.* " - -DESCRIPTION_${PN}-syslog="Python Syslog Interface" -RDEPENDS_${PN}-syslog="${PN}-core" -FILES_${PN}-syslog="${libdir}/python2.6/lib-dynload/syslog.so " - -DESCRIPTION_${PN}-terminal="Python Terminal Controlling Support" -RDEPENDS_${PN}-terminal="${PN}-core ${PN}-io" -FILES_${PN}-terminal="${libdir}/python2.6/pty.* ${libdir}/python2.6/tty.* " - -DESCRIPTION_${PN}-tests="Python Tests" -RDEPENDS_${PN}-tests="${PN}-core" -FILES_${PN}-tests="${libdir}/python2.6/test " - -DESCRIPTION_${PN}-textutils="Python Option Parsing, Text Wrapping and Comma-Separated-Value Support" -RDEPENDS_${PN}-textutils="${PN}-core ${PN}-io ${PN}-re ${PN}-stringold" -FILES_${PN}-textutils="${libdir}/python2.6/lib-dynload/_csv.so ${libdir}/python2.6/csv.* ${libdir}/python2.6/optparse.* ${libdir}/python2.6/textwrap.* " - -DESCRIPTION_${PN}-threading="Python Threading & Synchronization Support" -RDEPENDS_${PN}-threading="${PN}-core ${PN}-lang" -FILES_${PN}-threading="${libdir}/python2.6/_threading_local.* ${libdir}/python2.6/dummy_thread.* ${libdir}/python2.6/dummy_threading.* ${libdir}/python2.6/mutex.* ${libdir}/python2.6/threading.* ${libdir}/python2.6/Queue.* " - -DESCRIPTION_${PN}-tkinter="Python Tcl/Tk Bindings" -RDEPENDS_${PN}-tkinter="${PN}-core" -FILES_${PN}-tkinter="${libdir}/python2.6/lib-dynload/_tkinter.so ${libdir}/python2.6/lib-tk " - -DESCRIPTION_${PN}-unittest="Python Unit Testing Framework" -RDEPENDS_${PN}-unittest="${PN}-core ${PN}-stringold ${PN}-lang" -FILES_${PN}-unittest="${libdir}/python2.6/unittest.* " - -DESCRIPTION_${PN}-unixadmin="Python Unix Administration Support" -RDEPENDS_${PN}-unixadmin="${PN}-core" -FILES_${PN}-unixadmin="${libdir}/python2.6/lib-dynload/nis.so ${libdir}/python2.6/lib-dynload/grp.so ${libdir}/python2.6/lib-dynload/pwd.so ${libdir}/python2.6/getpass.* " - -DESCRIPTION_${PN}-xml="Python basic XML support." -RDEPENDS_${PN}-xml="${PN}-core ${PN}-elementtree ${PN}-re" -FILES_${PN}-xml="${libdir}/python2.6/lib-dynload/pyexpat.so ${libdir}/python2.6/xml ${libdir}/python2.6/xmllib.* " - -DESCRIPTION_${PN}-xmlrpc="Python XMLRPC Support" -RDEPENDS_${PN}-xmlrpc="${PN}-core ${PN}-xml ${PN}-netserver ${PN}-lang" -FILES_${PN}-xmlrpc="${libdir}/python2.6/xmlrpclib.* ${libdir}/python2.6/SimpleXMLRPCServer.* " - -DESCRIPTION_${PN}-zlib="Python zlib Support." -RDEPENDS_${PN}-zlib="${PN}-core" -FILES_${PN}-zlib="${libdir}/python2.6/lib-dynload/zlib.so " - -DESCRIPTION_${PN}-modules="All Python modules" -RDEPENDS_${PN}-modules="${PN}-audio ${PN}-bsddb ${PN}-codecs ${PN}-compile ${PN}-compiler ${PN}-compression ${PN}-core ${PN}-crypt ${PN}-ctypes ${PN}-curses ${PN}-datetime ${PN}-db ${PN}-debugger ${PN}-difflib ${PN}-distutils ${PN}-doctest ${PN}-elementtree ${PN}-email ${PN}-fcntl ${PN}-gdbm ${PN}-hotshot ${PN}-html ${PN}-idle ${PN}-image ${PN}-io ${PN}-json ${PN}-lang ${PN}-logging ${PN}-mailbox ${PN}-math ${PN}-mime ${PN}-mmap ${PN}-multiprocessing ${PN}-netclient ${PN}-netserver ${PN}-numbers ${PN}-pickle ${PN}-pkgutil ${PN}-pprint ${PN}-profile ${PN}-pydoc ${PN}-re ${PN}-readline ${PN}-resource ${PN}-robotparser ${PN}-shell ${PN}-smtpd ${PN}-sqlite3 ${PN}-sqlite3-tests ${PN}-stringold ${PN}-subprocess ${PN}-syslog ${PN}-terminal ${PN}-tests ${PN}-textutils ${PN}-threading ${PN}-tkinter ${PN}-unittest ${PN}-unixadmin ${PN}-xml ${PN}-xmlrpc ${PN}-zlib " -ALLOW_EMPTY_${PN}-modules = "1" - - diff --git a/meta/recipes-devtools/python/python-2.7-manifest.inc b/meta/recipes-devtools/python/python-2.7-manifest.inc new file mode 100644 index 0000000000..e3ebe4141e --- /dev/null +++ b/meta/recipes-devtools/python/python-2.7-manifest.inc @@ -0,0 +1,268 @@ + +# WARNING: This file is AUTO GENERATED: Manual edits will be lost next time I regenerate the file. +# Generator: '../../../scripts/contrib/python/generate-manifest-2.6.py' Version 20110222 (C) 2002-2010 Michael 'Mickey' Lauer +# Visit the Python for Embedded Systems Site => http://www.Vanille.de/projects/python.spy + + + +PROVIDES+="${PN}-audio ${PN}-bsddb ${PN}-codecs ${PN}-compile ${PN}-compiler ${PN}-compression ${PN}-core ${PN}-crypt ${PN}-ctypes ${PN}-curses ${PN}-datetime ${PN}-db ${PN}-debugger ${PN}-dev ${PN}-difflib ${PN}-distutils ${PN}-doctest ${PN}-elementtree ${PN}-email ${PN}-fcntl ${PN}-gdbm ${PN}-hotshot ${PN}-html ${PN}-idle ${PN}-image ${PN}-io ${PN}-json ${PN}-lang ${PN}-logging ${PN}-mailbox ${PN}-math ${PN}-mime ${PN}-mmap ${PN}-multiprocessing ${PN}-netclient ${PN}-netserver ${PN}-numbers ${PN}-pickle ${PN}-pkgutil ${PN}-pprint ${PN}-profile ${PN}-pydoc ${PN}-re ${PN}-readline ${PN}-resource ${PN}-robotparser ${PN}-shell ${PN}-smtpd ${PN}-sqlite3 ${PN}-sqlite3-tests ${PN}-stringold ${PN}-subprocess ${PN}-syslog ${PN}-terminal ${PN}-tests ${PN}-textutils ${PN}-threading ${PN}-tkinter ${PN}-unittest ${PN}-unixadmin ${PN}-xml ${PN}-xmlrpc ${PN}-zlib " + +PACKAGES="${PN}-dbg ${PN}-audio ${PN}-bsddb ${PN}-codecs ${PN}-compile ${PN}-compiler ${PN}-compression ${PN}-core ${PN}-crypt ${PN}-ctypes ${PN}-curses ${PN}-datetime ${PN}-db ${PN}-debugger ${PN}-dev ${PN}-difflib ${PN}-distutils ${PN}-doctest ${PN}-elementtree ${PN}-email ${PN}-fcntl ${PN}-gdbm ${PN}-hotshot ${PN}-html ${PN}-idle ${PN}-image ${PN}-io ${PN}-json ${PN}-lang ${PN}-logging ${PN}-mailbox ${PN}-math ${PN}-mime ${PN}-mmap ${PN}-multiprocessing ${PN}-netclient ${PN}-netserver ${PN}-numbers ${PN}-pickle ${PN}-pkgutil ${PN}-pprint ${PN}-profile ${PN}-pydoc ${PN}-re ${PN}-readline ${PN}-resource ${PN}-robotparser ${PN}-shell ${PN}-smtpd ${PN}-sqlite3 ${PN}-sqlite3-tests ${PN}-stringold ${PN}-subprocess ${PN}-syslog ${PN}-terminal ${PN}-tests ${PN}-textutils ${PN}-threading ${PN}-tkinter ${PN}-unittest ${PN}-unixadmin ${PN}-xml ${PN}-xmlrpc ${PN}-zlib ${PN}-modules" + +DESCRIPTION_${PN}-audio="Python Audio Handling" +RDEPENDS_${PN}-audio="${PN}-core" +FILES_${PN}-audio="${libdir}/python2.6/wave.* ${libdir}/python2.6/chunk.* ${libdir}/python2.6/sndhdr.* ${libdir}/python2.6/lib-dynload/ossaudiodev.so ${libdir}/python2.6/lib-dynload/audioop.so " + +DESCRIPTION_${PN}-bsddb="Python Berkeley Database Bindings" +RDEPENDS_${PN}-bsddb="${PN}-core" +FILES_${PN}-bsddb="${libdir}/python2.6/bsddb ${libdir}/python2.6/lib-dynload/_bsddb.so " + +DESCRIPTION_${PN}-codecs="Python Codecs, Encodings & i18n Support" +RDEPENDS_${PN}-codecs="${PN}-core ${PN}-lang" +FILES_${PN}-codecs="${libdir}/python2.6/codecs.* ${libdir}/python2.6/encodings ${libdir}/python2.6/gettext.* ${libdir}/python2.6/locale.* ${libdir}/python2.6/lib-dynload/_locale.so ${libdir}/python2.6/lib-dynload/unicodedata.so ${libdir}/python2.6/stringprep.* ${libdir}/python2.6/xdrlib.* " + +DESCRIPTION_${PN}-compile="Python Bytecode Compilation Support" +RDEPENDS_${PN}-compile="${PN}-core" +FILES_${PN}-compile="${libdir}/python2.6/py_compile.* ${libdir}/python2.6/compileall.* " + +DESCRIPTION_${PN}-compiler="Python Compiler Support" +RDEPENDS_${PN}-compiler="${PN}-core" +FILES_${PN}-compiler="${libdir}/python2.6/compiler " + +DESCRIPTION_${PN}-compression="Python High Level Compression Support" +RDEPENDS_${PN}-compression="${PN}-core ${PN}-zlib" +FILES_${PN}-compression="${libdir}/python2.6/gzip.* ${libdir}/python2.6/zipfile.* ${libdir}/python2.6/tarfile.* ${libdir}/python2.6/lib-dynload/bz2.so " + +DESCRIPTION_${PN}-core="Python Interpreter and core modules (needed!)" +RDEPENDS_${PN}-core="" +FILES_${PN}-core="${libdir}/python2.6/__future__.* ${libdir}/python2.6/_abcoll.* ${libdir}/python2.6/abc.* ${libdir}/python2.6/copy.* ${libdir}/python2.6/copy_reg.* ${libdir}/python2.6/ConfigParser.* ${libdir}/python2.6/genericpath.* ${libdir}/python2.6/getopt.* ${libdir}/python2.6/linecache.* ${libdir}/python2.6/new.* ${libdir}/python2.6/os.* ${libdir}/python2.6/posixpath.* ${libdir}/python2.6/struct.* ${libdir}/python2.6/warnings.* ${libdir}/python2.6/site.* ${libdir}/python2.6/stat.* ${libdir}/python2.6/UserDict.* ${libdir}/python2.6/UserList.* ${libdir}/python2.6/UserString.* ${libdir}/python2.6/lib-dynload/binascii.so ${libdir}/python2.6/lib-dynload/_struct.so ${libdir}/python2.6/lib-dynload/time.so ${libdir}/python2.6/lib-dynload/xreadlines.so ${libdir}/python2.6/types.* ${libdir}/python2.6/platform.* ${bindir}/python* " + +DESCRIPTION_${PN}-crypt="Python Basic Cryptographic and Hashing Support" +RDEPENDS_${PN}-crypt="${PN}-core" +FILES_${PN}-crypt="${libdir}/python2.6/hashlib.* ${libdir}/python2.6/md5.* ${libdir}/python2.6/sha.* ${libdir}/python2.6/lib-dynload/crypt.so ${libdir}/python2.6/lib-dynload/_hashlib.so ${libdir}/python2.6/lib-dynload/_sha256.so ${libdir}/python2.6/lib-dynload/_sha512.so " + +DESCRIPTION_${PN}-ctypes="Python C Types Support" +RDEPENDS_${PN}-ctypes="${PN}-core" +FILES_${PN}-ctypes="${libdir}/python2.6/ctypes ${libdir}/python2.6/lib-dynload/_ctypes.so " + +DESCRIPTION_${PN}-curses="Python Curses Support" +RDEPENDS_${PN}-curses="${PN}-core" +FILES_${PN}-curses="${libdir}/python2.6/curses ${libdir}/python2.6/lib-dynload/_curses.so ${libdir}/python2.6/lib-dynload/_curses_panel.so " + +DESCRIPTION_${PN}-datetime="Python Calendar and Time support" +RDEPENDS_${PN}-datetime="${PN}-core ${PN}-codecs" +FILES_${PN}-datetime="${libdir}/python2.6/_strptime.* ${libdir}/python2.6/calendar.* ${libdir}/python2.6/lib-dynload/datetime.so " + +DESCRIPTION_${PN}-db="Python File-Based Database Support" +RDEPENDS_${PN}-db="${PN}-core" +FILES_${PN}-db="${libdir}/python2.6/anydbm.* ${libdir}/python2.6/dumbdbm.* ${libdir}/python2.6/whichdb.* " + +DESCRIPTION_${PN}-debugger="Python Debugger" +RDEPENDS_${PN}-debugger="${PN}-core ${PN}-io ${PN}-lang ${PN}-re ${PN}-stringold ${PN}-shell ${PN}-pprint" +FILES_${PN}-debugger="${libdir}/python2.6/bdb.* ${libdir}/python2.6/pdb.* " + +DESCRIPTION_${PN}-dev="Python Development Package" +RDEPENDS_${PN}-dev="${PN}-core" +FILES_${PN}-dev="${includedir} ${libdir}/libpython2.6.so " + +DESCRIPTION_${PN}-difflib="Python helpers for computing deltas between objects." +RDEPENDS_${PN}-difflib="${PN}-lang ${PN}-re" +FILES_${PN}-difflib="${libdir}/python2.6/difflib.* " + +DESCRIPTION_${PN}-distutils="Python Distribution Utilities" +RDEPENDS_${PN}-distutils="${PN}-core" +FILES_${PN}-distutils="${libdir}/python2.6/config ${libdir}/python2.6/distutils " + +DESCRIPTION_${PN}-doctest="Python framework for running examples in docstrings." +RDEPENDS_${PN}-doctest="${PN}-core ${PN}-lang ${PN}-io ${PN}-re ${PN}-unittest ${PN}-debugger ${PN}-difflib" +FILES_${PN}-doctest="${libdir}/python2.6/doctest.* " + +DESCRIPTION_${PN}-elementtree="Python elementree" +RDEPENDS_${PN}-elementtree="${PN}-core" +FILES_${PN}-elementtree="${libdir}/python2.6/lib-dynload/_elementtree.so " + +DESCRIPTION_${PN}-email="Python Email Support" +RDEPENDS_${PN}-email="${PN}-core ${PN}-io ${PN}-re ${PN}-mime ${PN}-audio ${PN}-image ${PN}-netclient" +FILES_${PN}-email="${libdir}/python2.6/imaplib.* ${libdir}/python2.6/email " + +DESCRIPTION_${PN}-fcntl="Python's fcntl Interface" +RDEPENDS_${PN}-fcntl="${PN}-core" +FILES_${PN}-fcntl="${libdir}/python2.6/lib-dynload/fcntl.so " + +DESCRIPTION_${PN}-gdbm="Python GNU Database Support" +RDEPENDS_${PN}-gdbm="${PN}-core" +FILES_${PN}-gdbm="${libdir}/python2.6/lib-dynload/gdbm.so " + +DESCRIPTION_${PN}-hotshot="Python Hotshot Profiler" +RDEPENDS_${PN}-hotshot="${PN}-core" +FILES_${PN}-hotshot="${libdir}/python2.6/hotshot ${libdir}/python2.6/lib-dynload/_hotshot.so " + +DESCRIPTION_${PN}-html="Python HTML Processing" +RDEPENDS_${PN}-html="${PN}-core" +FILES_${PN}-html="${libdir}/python2.6/formatter.* ${libdir}/python2.6/htmlentitydefs.* ${libdir}/python2.6/htmllib.* ${libdir}/python2.6/markupbase.* ${libdir}/python2.6/sgmllib.* " + +DESCRIPTION_${PN}-idle="Python Integrated Development Environment" +RDEPENDS_${PN}-idle="${PN}-core ${PN}-tkinter" +FILES_${PN}-idle="${bindir}/idle ${libdir}/python2.6/idlelib " + +DESCRIPTION_${PN}-image="Python Graphical Image Handling" +RDEPENDS_${PN}-image="${PN}-core" +FILES_${PN}-image="${libdir}/python2.6/colorsys.* ${libdir}/python2.6/imghdr.* ${libdir}/python2.6/lib-dynload/imageop.so ${libdir}/python2.6/lib-dynload/rgbimg.so " + +DESCRIPTION_${PN}-io="Python Low-Level I/O" +RDEPENDS_${PN}-io="${PN}-core ${PN}-math" +FILES_${PN}-io="${libdir}/python2.6/lib-dynload/_socket.so ${libdir}/python2.6/lib-dynload/_ssl.so ${libdir}/python2.6/lib-dynload/select.so ${libdir}/python2.6/lib-dynload/termios.so ${libdir}/python2.6/lib-dynload/cStringIO.so ${libdir}/python2.6/pipes.* ${libdir}/python2.6/socket.* ${libdir}/python2.6/ssl.* ${libdir}/python2.6/tempfile.* ${libdir}/python2.6/StringIO.* " + +DESCRIPTION_${PN}-json="Python JSON Support" +RDEPENDS_${PN}-json="${PN}-core ${PN}-math ${PN}-re" +FILES_${PN}-json="${libdir}/python2.6/json " + +DESCRIPTION_${PN}-lang="Python Low-Level Language Support" +RDEPENDS_${PN}-lang="${PN}-core" +FILES_${PN}-lang="${libdir}/python2.6/lib-dynload/_bisect.so ${libdir}/python2.6/lib-dynload/_collections.so ${libdir}/python2.6/lib-dynload/_heapq.so ${libdir}/python2.6/lib-dynload/_weakref.so ${libdir}/python2.6/lib-dynload/_functools.so ${libdir}/python2.6/lib-dynload/array.so ${libdir}/python2.6/lib-dynload/itertools.so ${libdir}/python2.6/lib-dynload/operator.so ${libdir}/python2.6/lib-dynload/parser.so ${libdir}/python2.6/atexit.* ${libdir}/python2.6/bisect.* ${libdir}/python2.6/code.* ${libdir}/python2.6/codeop.* ${libdir}/python2.6/collections.* ${libdir}/python2.6/dis.* ${libdir}/python2.6/functools.* ${libdir}/python2.6/heapq.* ${libdir}/python2.6/inspect.* ${libdir}/python2.6/keyword.* ${libdir}/python2.6/opcode.* ${libdir}/python2.6/symbol.* ${libdir}/python2.6/repr.* ${libdir}/python2.6/token.* ${libdir}/python2.6/tokenize.* ${libdir}/python2.6/traceback.* ${libdir}/python2.6/weakref.* " + +DESCRIPTION_${PN}-logging="Python Logging Support" +RDEPENDS_${PN}-logging="${PN}-core ${PN}-io ${PN}-lang ${PN}-pickle ${PN}-stringold" +FILES_${PN}-logging="${libdir}/python2.6/logging " + +DESCRIPTION_${PN}-mailbox="Python Mailbox Format Support" +RDEPENDS_${PN}-mailbox="${PN}-core ${PN}-mime" +FILES_${PN}-mailbox="${libdir}/python2.6/mailbox.* " + +DESCRIPTION_${PN}-math="Python Math Support" +RDEPENDS_${PN}-math="${PN}-core" +FILES_${PN}-math="${libdir}/python2.6/lib-dynload/cmath.so ${libdir}/python2.6/lib-dynload/math.so ${libdir}/python2.6/lib-dynload/_random.so ${libdir}/python2.6/random.* ${libdir}/python2.6/sets.* " + +DESCRIPTION_${PN}-mime="Python MIME Handling APIs" +RDEPENDS_${PN}-mime="${PN}-core ${PN}-io" +FILES_${PN}-mime="${libdir}/python2.6/mimetools.* ${libdir}/python2.6/uu.* ${libdir}/python2.6/quopri.* ${libdir}/python2.6/rfc822.* " + +DESCRIPTION_${PN}-mmap="Python Memory-Mapped-File Support" +RDEPENDS_${PN}-mmap="${PN}-core ${PN}-io" +FILES_${PN}-mmap="${libdir}/python2.6/lib-dynload/mmap.so " + +DESCRIPTION_${PN}-multiprocessing="Python Multiprocessing Support" +RDEPENDS_${PN}-multiprocessing="${PN}-core ${PN}-io ${PN}-lang" +FILES_${PN}-multiprocessing="${libdir}/python2.6/lib-dynload/_multiprocessing.so ${libdir}/python2.6/multiprocessing " + +DESCRIPTION_${PN}-netclient="Python Internet Protocol Clients" +RDEPENDS_${PN}-netclient="${PN}-core ${PN}-crypt ${PN}-datetime ${PN}-io ${PN}-lang ${PN}-logging ${PN}-mime" +FILES_${PN}-netclient="${libdir}/python2.6/*Cookie*.* ${libdir}/python2.6/base64.* ${libdir}/python2.6/cookielib.* ${libdir}/python2.6/ftplib.* ${libdir}/python2.6/gopherlib.* ${libdir}/python2.6/hmac.* ${libdir}/python2.6/httplib.* ${libdir}/python2.6/mimetypes.* ${libdir}/python2.6/nntplib.* ${libdir}/python2.6/poplib.* ${libdir}/python2.6/smtplib.* ${libdir}/python2.6/telnetlib.* ${libdir}/python2.6/urllib.* ${libdir}/python2.6/urllib2.* ${libdir}/python2.6/urlparse.* ${libdir}/python2.6/uuid.* ${libdir}/python2.6/rfc822.* ${libdir}/python2.6/mimetools.* " + +DESCRIPTION_${PN}-netserver="Python Internet Protocol Servers" +RDEPENDS_${PN}-netserver="${PN}-core ${PN}-netclient" +FILES_${PN}-netserver="${libdir}/python2.6/cgi.* ${libdir}/python2.6/*HTTPServer.* ${libdir}/python2.6/SocketServer.* " + +DESCRIPTION_${PN}-numbers="Python Number APIs" +RDEPENDS_${PN}-numbers="${PN}-core ${PN}-lang ${PN}-re" +FILES_${PN}-numbers="${libdir}/python2.6/decimal.* ${libdir}/python2.6/numbers.* " + +DESCRIPTION_${PN}-pickle="Python Persistence Support" +RDEPENDS_${PN}-pickle="${PN}-core ${PN}-codecs ${PN}-io ${PN}-re" +FILES_${PN}-pickle="${libdir}/python2.6/pickle.* ${libdir}/python2.6/shelve.* ${libdir}/python2.6/lib-dynload/cPickle.so " + +DESCRIPTION_${PN}-pkgutil="Python Package Extension Utility Support" +RDEPENDS_${PN}-pkgutil="${PN}-core" +FILES_${PN}-pkgutil="${libdir}/python2.6/pkgutil.* " + +DESCRIPTION_${PN}-pprint="Python Pretty-Print Support" +RDEPENDS_${PN}-pprint="${PN}-core" +FILES_${PN}-pprint="${libdir}/python2.6/pprint.* " + +DESCRIPTION_${PN}-profile="Python Basic Profiling Support" +RDEPENDS_${PN}-profile="${PN}-core ${PN}-textutils" +FILES_${PN}-profile="${libdir}/python2.6/profile.* ${libdir}/python2.6/pstats.* ${libdir}/python2.6/cProfile.* ${libdir}/python2.6/lib-dynload/_lsprof.so " + +DESCRIPTION_${PN}-pydoc="Python Interactive Help Support" +RDEPENDS_${PN}-pydoc="${PN}-core ${PN}-lang ${PN}-stringold ${PN}-re" +FILES_${PN}-pydoc="${bindir}/pydoc ${libdir}/python2.6/pydoc.* " + +DESCRIPTION_${PN}-re="Python Regular Expression APIs" +RDEPENDS_${PN}-re="${PN}-core" +FILES_${PN}-re="${libdir}/python2.6/re.* ${libdir}/python2.6/sre.* ${libdir}/python2.6/sre_compile.* ${libdir}/python2.6/sre_constants* ${libdir}/python2.6/sre_parse.* " + +DESCRIPTION_${PN}-readline="Python Readline Support" +RDEPENDS_${PN}-readline="${PN}-core" +FILES_${PN}-readline="${libdir}/python2.6/lib-dynload/readline.so ${libdir}/python2.6/rlcompleter.* " + +DESCRIPTION_${PN}-resource="Python Resource Control Interface" +RDEPENDS_${PN}-resource="${PN}-core" +FILES_${PN}-resource="${libdir}/python2.6/lib-dynload/resource.so " + +DESCRIPTION_${PN}-robotparser="Python robots.txt parser" +RDEPENDS_${PN}-robotparser="${PN}-core ${PN}-netclient" +FILES_${PN}-robotparser="${libdir}/python2.6/robotparser.* " + +DESCRIPTION_${PN}-shell="Python Shell-Like Functionality" +RDEPENDS_${PN}-shell="${PN}-core ${PN}-re" +FILES_${PN}-shell="${libdir}/python2.6/cmd.* ${libdir}/python2.6/commands.* ${libdir}/python2.6/dircache.* ${libdir}/python2.6/fnmatch.* ${libdir}/python2.6/glob.* ${libdir}/python2.6/popen2.* ${libdir}/python2.6/shlex.* ${libdir}/python2.6/shutil.* " + +DESCRIPTION_${PN}-smtpd="Python Simple Mail Transport Daemon" +RDEPENDS_${PN}-smtpd="${PN}-core ${PN}-netserver ${PN}-email ${PN}-mime" +FILES_${PN}-smtpd="${bindir}/smtpd.* " + +DESCRIPTION_${PN}-sqlite3="Python Sqlite3 Database Support" +RDEPENDS_${PN}-sqlite3="${PN}-core ${PN}-datetime ${PN}-lang ${PN}-crypt ${PN}-io ${PN}-threading ${PN}-zlib" +FILES_${PN}-sqlite3="${libdir}/python2.6/lib-dynload/_sqlite3.so ${libdir}/python2.6/sqlite3/dbapi2.* ${libdir}/python2.6/sqlite3/__init__.* ${libdir}/python2.6/sqlite3/dump.* " + +DESCRIPTION_${PN}-sqlite3-tests="Python Sqlite3 Database Support Tests" +RDEPENDS_${PN}-sqlite3-tests="${PN}-core ${PN}-sqlite3" +FILES_${PN}-sqlite3-tests="${libdir}/python2.6/sqlite3/test " + +DESCRIPTION_${PN}-stringold="Python String APIs [deprecated]" +RDEPENDS_${PN}-stringold="${PN}-core ${PN}-re" +FILES_${PN}-stringold="${libdir}/python2.6/lib-dynload/strop.so ${libdir}/python2.6/string.* " + +DESCRIPTION_${PN}-subprocess="Python Subprocess Support" +RDEPENDS_${PN}-subprocess="${PN}-core ${PN}-io ${PN}-re ${PN}-fcntl ${PN}-pickle" +FILES_${PN}-subprocess="${libdir}/python2.6/subprocess.* " + +DESCRIPTION_${PN}-syslog="Python Syslog Interface" +RDEPENDS_${PN}-syslog="${PN}-core" +FILES_${PN}-syslog="${libdir}/python2.6/lib-dynload/syslog.so " + +DESCRIPTION_${PN}-terminal="Python Terminal Controlling Support" +RDEPENDS_${PN}-terminal="${PN}-core ${PN}-io" +FILES_${PN}-terminal="${libdir}/python2.6/pty.* ${libdir}/python2.6/tty.* " + +DESCRIPTION_${PN}-tests="Python Tests" +RDEPENDS_${PN}-tests="${PN}-core" +FILES_${PN}-tests="${libdir}/python2.6/test " + +DESCRIPTION_${PN}-textutils="Python Option Parsing, Text Wrapping and Comma-Separated-Value Support" +RDEPENDS_${PN}-textutils="${PN}-core ${PN}-io ${PN}-re ${PN}-stringold" +FILES_${PN}-textutils="${libdir}/python2.6/lib-dynload/_csv.so ${libdir}/python2.6/csv.* ${libdir}/python2.6/optparse.* ${libdir}/python2.6/textwrap.* " + +DESCRIPTION_${PN}-threading="Python Threading & Synchronization Support" +RDEPENDS_${PN}-threading="${PN}-core ${PN}-lang" +FILES_${PN}-threading="${libdir}/python2.6/_threading_local.* ${libdir}/python2.6/dummy_thread.* ${libdir}/python2.6/dummy_threading.* ${libdir}/python2.6/mutex.* ${libdir}/python2.6/threading.* ${libdir}/python2.6/Queue.* " + +DESCRIPTION_${PN}-tkinter="Python Tcl/Tk Bindings" +RDEPENDS_${PN}-tkinter="${PN}-core" +FILES_${PN}-tkinter="${libdir}/python2.6/lib-dynload/_tkinter.so ${libdir}/python2.6/lib-tk " + +DESCRIPTION_${PN}-unittest="Python Unit Testing Framework" +RDEPENDS_${PN}-unittest="${PN}-core ${PN}-stringold ${PN}-lang" +FILES_${PN}-unittest="${libdir}/python2.6/unittest.* " + +DESCRIPTION_${PN}-unixadmin="Python Unix Administration Support" +RDEPENDS_${PN}-unixadmin="${PN}-core" +FILES_${PN}-unixadmin="${libdir}/python2.6/lib-dynload/nis.so ${libdir}/python2.6/lib-dynload/grp.so ${libdir}/python2.6/lib-dynload/pwd.so ${libdir}/python2.6/getpass.* " + +DESCRIPTION_${PN}-xml="Python basic XML support." +RDEPENDS_${PN}-xml="${PN}-core ${PN}-elementtree ${PN}-re" +FILES_${PN}-xml="${libdir}/python2.6/lib-dynload/pyexpat.so ${libdir}/python2.6/xml ${libdir}/python2.6/xmllib.* " + +DESCRIPTION_${PN}-xmlrpc="Python XMLRPC Support" +RDEPENDS_${PN}-xmlrpc="${PN}-core ${PN}-xml ${PN}-netserver ${PN}-lang" +FILES_${PN}-xmlrpc="${libdir}/python2.6/xmlrpclib.* ${libdir}/python2.6/SimpleXMLRPCServer.* " + +DESCRIPTION_${PN}-zlib="Python zlib Support." +RDEPENDS_${PN}-zlib="${PN}-core" +FILES_${PN}-zlib="${libdir}/python2.6/lib-dynload/zlib.so " + +DESCRIPTION_${PN}-modules="All Python modules" +RDEPENDS_${PN}-modules="${PN}-audio ${PN}-bsddb ${PN}-codecs ${PN}-compile ${PN}-compiler ${PN}-compression ${PN}-core ${PN}-crypt ${PN}-ctypes ${PN}-curses ${PN}-datetime ${PN}-db ${PN}-debugger ${PN}-difflib ${PN}-distutils ${PN}-doctest ${PN}-elementtree ${PN}-email ${PN}-fcntl ${PN}-gdbm ${PN}-hotshot ${PN}-html ${PN}-idle ${PN}-image ${PN}-io ${PN}-json ${PN}-lang ${PN}-logging ${PN}-mailbox ${PN}-math ${PN}-mime ${PN}-mmap ${PN}-multiprocessing ${PN}-netclient ${PN}-netserver ${PN}-numbers ${PN}-pickle ${PN}-pkgutil ${PN}-pprint ${PN}-profile ${PN}-pydoc ${PN}-re ${PN}-readline ${PN}-resource ${PN}-robotparser ${PN}-shell ${PN}-smtpd ${PN}-sqlite3 ${PN}-sqlite3-tests ${PN}-stringold ${PN}-subprocess ${PN}-syslog ${PN}-terminal ${PN}-tests ${PN}-textutils ${PN}-threading ${PN}-tkinter ${PN}-unittest ${PN}-unixadmin ${PN}-xml ${PN}-xmlrpc ${PN}-zlib " +ALLOW_EMPTY_${PN}-modules = "1" + + diff --git a/meta/recipes-devtools/python/python-native/multilib.patch b/meta/recipes-devtools/python/python-native/multilib.patch new file mode 100644 index 0000000000..f8d7aee84b --- /dev/null +++ b/meta/recipes-devtools/python/python-native/multilib.patch @@ -0,0 +1,240 @@ +commit 248279e54467a8cd5cde98fc124d1d1384703513 +Author: Yu Ke +Date: Tue Jun 28 21:21:29 2011 +0800 + + SUSE patch for the lib64 issue + + see detail in http://bugs.python.org/issue1294959 + + also rebased a bit for Yocto python 2.6.6 + + Picked-by: Yu Ke + + +2011/09/29 +The python recipe building was failing because python-native +could not handle sys.lib var. sys.lib var is defined in the +multilib patch hence added this multilib.patch for python-native +recipe. +Signed-Off-By: Nitin A Kamble + +Index: Python-2.7.2/Include/pythonrun.h +=================================================================== +--- Python-2.7.2.orig/Include/pythonrun.h ++++ Python-2.7.2/Include/pythonrun.h +@@ -108,6 +108,7 @@ PyAPI_FUNC(char *) Py_GetPath(void); + /* In their own files */ + PyAPI_FUNC(const char *) Py_GetVersion(void); + PyAPI_FUNC(const char *) Py_GetPlatform(void); ++PyAPI_FUNC(const char *) Py_GetLib(void); + PyAPI_FUNC(const char *) Py_GetCopyright(void); + PyAPI_FUNC(const char *) Py_GetCompiler(void); + PyAPI_FUNC(const char *) Py_GetBuildInfo(void); +Index: Python-2.7.2/Lib/distutils/command/install.py +=================================================================== +--- Python-2.7.2.orig/Lib/distutils/command/install.py ++++ Python-2.7.2/Lib/distutils/command/install.py +@@ -22,6 +22,8 @@ from site import USER_BASE + from site import USER_SITE + + ++libname = sys.lib ++ + if sys.version < "2.2": + WINDOWS_SCHEME = { + 'purelib': '$base', +@@ -42,7 +44,7 @@ else: + INSTALL_SCHEMES = { + 'unix_prefix': { + 'purelib': '$base/lib/python$py_version_short/site-packages', +- 'platlib': '$platbase/lib/python$py_version_short/site-packages', ++ 'platlib': '$platbase/'+libname+'/python$py_version_short/site-packages', + 'headers': '$base/include/python$py_version_short/$dist_name', + 'scripts': '$base/bin', + 'data' : '$base', +Index: Python-2.7.2/Lib/pydoc.py +=================================================================== +--- Python-2.7.2.orig/Lib/pydoc.py ++++ Python-2.7.2/Lib/pydoc.py +@@ -352,7 +352,7 @@ class Doc: + + docloc = os.environ.get("PYTHONDOCS", + "http://docs.python.org/library") +- basedir = os.path.join(sys.exec_prefix, "lib", ++ basedir = os.path.join(sys.exec_prefix, sys.lib, + "python"+sys.version[0:3]) + if (isinstance(object, type(os)) and + (object.__name__ in ('errno', 'exceptions', 'gc', 'imp', +Index: Python-2.7.2/Lib/site.py +=================================================================== +--- Python-2.7.2.orig/Lib/site.py ++++ Python-2.7.2/Lib/site.py +@@ -300,13 +300,19 @@ def getsitepackages(): + if sys.platform in ('os2emx', 'riscos'): + sitepackages.append(os.path.join(prefix, "Lib", "site-packages")) + elif os.sep == '/': +- sitepackages.append(os.path.join(prefix, "lib", ++ sitepackages.append(os.path.join(prefix, sys.lib, + "python" + sys.version[:3], + "site-packages")) +- sitepackages.append(os.path.join(prefix, "lib", "site-python")) ++ if sys.lib != "lib": ++ sitepackages.append(os.path.join(prefix, "lib", ++ "python" + sys.version[:3], ++ "site-packages")) ++ sitepackages.append(os.path.join(prefix, sys.lib, "site-python")) ++ if sys.lib != "lib": ++ sitepackages.append(os.path.join(prefix, "lib", "site-python")) + else: + sitepackages.append(prefix) +- sitepackages.append(os.path.join(prefix, "lib", "site-packages")) ++ sitepackages.append(os.path.join(prefix, sys.lib, "site-packages")) + if sys.platform == "darwin": + # for framework builds *only* we add the standard Apple + # locations. +Index: Python-2.7.2/Lib/test/test_dl.py +=================================================================== +--- Python-2.7.2.orig/Lib/test/test_dl.py ++++ Python-2.7.2/Lib/test/test_dl.py +@@ -5,10 +5,11 @@ + import unittest + from test.test_support import verbose, import_module + dl = import_module('dl', deprecated=True) ++import sys + + sharedlibs = [ +- ('/usr/lib/libc.so', 'getpid'), +- ('/lib/libc.so.6', 'getpid'), ++ ('/usr/'+sys.lib+'/libc.so', 'getpid'), ++ ('/'+sys.lib+'/libc.so.6', 'getpid'), + ('/usr/bin/cygwin1.dll', 'getpid'), + ('/usr/lib/libc.dylib', 'getpid'), + ] +Index: Python-2.7.2/Lib/trace.py +=================================================================== +--- Python-2.7.2.orig/Lib/trace.py ++++ Python-2.7.2/Lib/trace.py +@@ -762,10 +762,10 @@ def main(argv=None): + # should I also call expanduser? (after all, could use $HOME) + + s = s.replace("$prefix", +- os.path.join(sys.prefix, "lib", ++ os.path.join(sys.prefix, sys.lib, + "python" + sys.version[:3])) + s = s.replace("$exec_prefix", +- os.path.join(sys.exec_prefix, "lib", ++ os.path.join(sys.exec_prefix, sys.lib, + "python" + sys.version[:3])) + s = os.path.normpath(s) + ignore_dirs.append(s) +Index: Python-2.7.2/Makefile.pre.in +=================================================================== +--- Python-2.7.2.orig/Makefile.pre.in ++++ Python-2.7.2/Makefile.pre.in +@@ -81,6 +81,7 @@ PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAG + + # Machine-dependent subdirectories + MACHDEP= @MACHDEP@ ++LIB= @LIB@ + + # Install prefix for architecture-independent files + prefix= @prefix@ +@@ -97,7 +98,7 @@ LIBDIR= @libdir@ + MANDIR= @mandir@ + INCLUDEDIR= @includedir@ + CONFINCLUDEDIR= $(exec_prefix)/include +-SCRIPTDIR= $(prefix)/lib ++SCRIPTDIR= $(prefix)/@LIB@ + + # Detailed destination directories + BINLIBDEST= $(LIBDIR)/python$(VERSION) +@@ -532,6 +533,7 @@ Modules/getpath.o: $(srcdir)/Modules/get + -DEXEC_PREFIX='"$(exec_prefix)"' \ + -DVERSION='"$(VERSION)"' \ + -DVPATH='"$(VPATH)"' \ ++ -DLIB='"$(LIB)"' \ + -o $@ $(srcdir)/Modules/getpath.c + + Modules/python.o: $(srcdir)/Modules/python.c +@@ -566,7 +568,7 @@ $(AST_C): $(AST_ASDL) $(ASDLGEN_FILES) + Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H) + + Python/getplatform.o: $(srcdir)/Python/getplatform.c +- $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c ++ $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -DLIB='"$(LIB)"' -o $@ $(srcdir)/Python/getplatform.c + + Python/importdl.o: $(srcdir)/Python/importdl.c + $(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c +Index: Python-2.7.2/Modules/getpath.c +=================================================================== +--- Python-2.7.2.orig/Modules/getpath.c ++++ Python-2.7.2/Modules/getpath.c +@@ -116,9 +116,11 @@ + #define EXEC_PREFIX PREFIX + #endif + ++#define LIB_PYTHON LIB "/python" VERSION ++ + #ifndef PYTHONPATH +-#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \ +- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload" ++#define PYTHONPATH PREFIX "/" LIB_PYTHON ":" \ ++ EXEC_PREFIX "/" LIB_PYTHON "/lib-dynload" + #endif + + #ifndef LANDMARK +@@ -129,7 +131,7 @@ static char prefix[MAXPATHLEN+1]; + static char exec_prefix[MAXPATHLEN+1]; + static char progpath[MAXPATHLEN+1]; + static char *module_search_path = NULL; +-static char lib_python[] = "lib/python" VERSION; ++static char lib_python[] = LIB_PYTHON; + + static void + reduce(char *dir) +Index: Python-2.7.2/Python/getplatform.c +=================================================================== +--- Python-2.7.2.orig/Python/getplatform.c ++++ Python-2.7.2/Python/getplatform.c +@@ -10,3 +10,13 @@ Py_GetPlatform(void) + { + return PLATFORM; + } ++ ++#ifndef LIB ++#define LIB "lib" ++#endif ++ ++const char * ++Py_GetLib(void) ++{ ++ return LIB; ++} +Index: Python-2.7.2/Python/sysmodule.c +=================================================================== +--- Python-2.7.2.orig/Python/sysmodule.c ++++ Python-2.7.2/Python/sysmodule.c +@@ -1416,6 +1416,8 @@ _PySys_Init(void) + PyString_FromString(Py_GetCopyright())); + SET_SYS_FROM_STRING("platform", + PyString_FromString(Py_GetPlatform())); ++ SET_SYS_FROM_STRING("lib", ++ PyString_FromString(Py_GetLib())); + SET_SYS_FROM_STRING("executable", + PyString_FromString(Py_GetProgramFullPath())); + SET_SYS_FROM_STRING("prefix", +Index: Python-2.7.2/configure.in +=================================================================== +--- Python-2.7.2.orig/configure.in ++++ Python-2.7.2/configure.in +@@ -629,6 +629,10 @@ SunOS*) + ;; + esac + ++AC_SUBST(LIB) ++AC_MSG_CHECKING(LIB) ++LIB=`basename ${libdir}` ++AC_MSG_RESULT($LIB) + + AC_SUBST(LIBRARY) + AC_MSG_CHECKING(LIBRARY) diff --git a/meta/recipes-devtools/python/python-native/nohostlibs.patch b/meta/recipes-devtools/python/python-native/nohostlibs.patch index aed45c9913..09c3fb808a 100644 --- a/meta/recipes-devtools/python/python-native/nohostlibs.patch +++ b/meta/recipes-devtools/python/python-native/nohostlibs.patch @@ -1,10 +1,14 @@ Upstream-Status: Inappropriate [embedded specific] -Index: Python-2.6.6/setup.py +2011/09/29 +rebased for python-2.7.2 +Signed-Off-By: Nitin A Kamble + +Index: Python-2.7.2/setup.py =================================================================== ---- Python-2.6.6.orig/setup.py -+++ Python-2.6.6/setup.py -@@ -356,8 +356,8 @@ class PyBuildExt(build_ext): +--- Python-2.7.2.orig/setup.py ++++ Python-2.7.2/setup.py +@@ -369,8 +369,8 @@ class PyBuildExt(build_ext): def detect_modules(self): # Ensure that /usr/local is always used @@ -12,16 +16,22 @@ Index: Python-2.6.6/setup.py - 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') + self.add_multiarch_paths() # Add paths specified in the environment variables LDFLAGS and - # CPPFLAGS for header and library files. -@@ -393,10 +393,10 @@ class PyBuildExt(build_ext): +@@ -407,15 +407,15 @@ class PyBuildExt(build_ext): for directory in reversed(options.dirs): add_dir_to_list(dir_list, directory) -- if os.path.normpath(sys.prefix) != '/usr': +- if os.path.normpath(sys.prefix) != '/usr' \ +- and not sysconfig.get_config_var('PYTHONFRAMEWORK'): ++ #if os.path.normpath(sys.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, -+ + add_dir_to_list(self.compiler.library_dirs, sysconfig.get_config_var("LIBDIR")) - add_dir_to_list(self.compiler.include_dirs, @@ -29,7 +39,7 @@ Index: Python-2.6.6/setup.py sysconfig.get_config_var("INCLUDEDIR")) try: -@@ -407,11 +407,8 @@ class PyBuildExt(build_ext): +@@ -426,11 +426,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. @@ -43,13 +53,15 @@ Index: Python-2.6.6/setup.py exts = [] missing = [] -@@ -661,8 +658,7 @@ class PyBuildExt(build_ext): +@@ -676,9 +673,8 @@ 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'], +- ['/usr/lib/termcap'], +- 'termcap'): + elif self.compiler.find_library_file(lib_dirs, - 'termcap'): ++ 'termcap'): readline_libs.append('termcap') exts.append( Extension('readline', ['readline.c'], + library_dirs=['/usr/lib/termcap'], diff --git a/meta/recipes-devtools/python/python-native_2.6.6.bb b/meta/recipes-devtools/python/python-native_2.6.6.bb deleted file mode 100644 index e0a4fb36d9..0000000000 --- a/meta/recipes-devtools/python/python-native_2.6.6.bb +++ /dev/null @@ -1,48 +0,0 @@ -require python.inc -DEPENDS = "openssl-native bzip2-full-native zlib-native readline-native sqlite3-native" -PR = "${INC_PR}.4" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=38fdd546420fab09ac6bd3d8a1c83eb6" - -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://06-ctypes-libffi-fix-configure.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://unixccompiler.patch \ - file://nohostlibs.patch" -S = "${WORKDIR}/Python-${PV}" - -SRC_URI[md5sum] = "cf4e6881bb84a7ce6089e4a307f71f14" -SRC_URI[sha256sum] = "134c5e0736bae2e5570d0b915693374f11108ded63c35a23a35d282737d2ce83" - -inherit native - -EXTRA_OEMAKE = '\ - BUILD_SYS="" \ - HOST_SYS="" \ - LIBC="" \ - STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} \ - STAGING_INCDIR=${STAGING_INCDIR_NATIVE} \ -' - -do_configure_prepend() { - autoreconf --verbose --install --force --exclude=autopoint Modules/_ctypes/libffi || bbnote "_ctypes failed to autoreconf" -} - -do_install() { - oe_runmake 'DESTDIR=${D}' install - install -d ${D}${bindir}/ - install -m 0755 Parser/pgen ${D}${bindir}/ - - # Make sure we use /usr/bin/env python - for PYTHSCRIPT in `grep -rIl ${bindir}/python ${D}${bindir}`; do - sed -i -e '1s|^#!.*|#!/usr/bin/env python|' $PYTHSCRIPT - done - - ln -sf python ${D}${bindir}/python2 - -} diff --git a/meta/recipes-devtools/python/python-native_2.7.2.bb b/meta/recipes-devtools/python/python-native_2.7.2.bb new file mode 100644 index 0000000000..6b90d5b891 --- /dev/null +++ b/meta/recipes-devtools/python/python-native_2.7.2.bb @@ -0,0 +1,43 @@ +require python.inc +DEPENDS = "openssl-native bzip2-full-native zlib-native readline-native sqlite3-native" +PR = "${INC_PR}.0" + +SRC_URI += "file://04-default-is-optimized.patch \ + file://05-enable-ctypes-cross-build.patch \ + file://06-ctypes-libffi-fix-configure.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://unixccompiler.patch \ + file://nohostlibs.patch \ + file://multilib.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_configure_prepend() { + autoreconf --verbose --install --force --exclude=autopoint Modules/_ctypes/libffi || bbnote "_ctypes failed to autoreconf" +} + +do_install() { + oe_runmake 'DESTDIR=${D}' install + install -d ${D}${bindir}/ + install -m 0755 Parser/pgen ${D}${bindir}/ + + # Make sure we use /usr/bin/env python + for PYTHSCRIPT in `grep -rIl ${bindir}/python ${D}${bindir}`; do + sed -i -e '1s|^#!.*|#!/usr/bin/env python|' $PYTHSCRIPT + done + + ln -sf python ${D}${bindir}/python2 + +} diff --git a/meta/recipes-devtools/python/python.inc b/meta/recipes-devtools/python/python.inc index a6cc91789c..3e970a7161 100644 --- a/meta/recipes-devtools/python/python.inc +++ b/meta/recipes-devtools/python/python.inc @@ -1,13 +1,18 @@ DESCRIPTION = "The Python Programming Language" HOMEPAGE = "http://www.python.org" -LICENSE = "PSF" +LICENSE = "PSFv2" SECTION = "devel/python" -# bump this on every change in contrib/python/generate-manifest-2.6.py -INC_PR = "r2" +# bump this on every change in contrib/python/generate-manifest-2.7.py +INC_PR = "r0" -DEFAULT_PREFERENCE = "-26" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2dffb81509b47974467ea23409909b1c" -PYTHON_MAJMIN = "2.6" +SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2" + +SRC_URI[md5sum] = "ba7b2f11ffdbf195ee0d111b9455a5bd" +SRC_URI[sha256sum] = "5057eb067eb5b5a6040dbd0e889e06550bde9ec041dadaa855ee9490034cbdab" + +PYTHON_MAJMIN = "2.7" inherit autotools @@ -30,5 +35,3 @@ EXTRA_OECONF_linuxstdbase = "\ --enable-shared \ ac_cv_sizeof_off_t=8 \ " - -PARALLEL_MAKE = "" 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 6c769ac7d3..27afc030b2 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 @@ -4,11 +4,11 @@ Upstream-Status: Inappropriate [embedded specific] # built cross-tools (this will not work), so we introduce HOSTPYTHON and HOSTPGEN. # Signed-Off: Michael 'Mickey' Lauer -Index: Python-2.6.6/Makefile.pre.in +Index: Python-2.7.2/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-2.7.2.orig/Makefile.pre.in ++++ Python-2.7.2/Makefile.pre.in +@@ -182,6 +182,7 @@ UNICODE_OBJS= @UNICODE_OBJS@ PYTHON= python$(EXE) BUILDPYTHON= python$(BUILDEXE) @@ -16,7 +16,7 @@ Index: Python-2.6.6/Makefile.pre.in # 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 +@@ -214,7 +215,7 @@ LIBFFI_INCLUDEDIR= @LIBFFI_INCLUDEDIR@ ########################################################################## # Parser PGEN= Parser/pgen$(EXE) @@ -25,39 +25,48 @@ Index: Python-2.6.6/Makefile.pre.in POBJS= \ Parser/acceler.o \ Parser/grammar1.o \ -@@ -394,8 +395,8 @@ platform: $(BUILDPYTHON) +@@ -401,14 +402,14 @@ $(BUILDPYTHON): Modules/python.o $(LIBRA + $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST) + + platform: $(BUILDPYTHON) +- $(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from sysconfig import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform ++ $(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform + + # Build the shared modules sharedmods: $(BUILDPYTHON) @case $$MAKEFLAGS in \ -- *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;; \ +- *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 -@@ -517,7 +518,7 @@ Modules/python.o: $(srcdir)/Modules/pyth - - $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT) +@@ -542,7 +543,7 @@ Modules/python.o: $(srcdir)/Modules/pyth + $(GRAMMAR_H) $(GRAMMAR_C): Parser/pgen.stamp + Parser/pgen.stamp: $(PGEN) $(GRAMMAR_INPUT) -@$(INSTALL) -d Include -- -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) -+ -$(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) +- $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) ++ $(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) + -touch Parser/pgen.stamp $(PGEN): $(PGENOBJS) - $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN) -@@ -887,23 +888,23 @@ libinstall: build_all $(srcdir)/Lib/$(PL +@@ -926,25 +927,25 @@ 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) + -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ + $(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) + -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ + $(DESTDIR)$(LIBDEST) -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ + $(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ @@ -74,20 +83,20 @@ Index: Python-2.6.6/Makefile.pre.in # Create the PLATDIR source directory, if one wasn't distributed.. $(srcdir)/Lib/$(PLATDIR): -@@ -1001,7 +1002,7 @@ libainstall: all +@@ -1049,7 +1050,7 @@ libainstall: all python-config # Install the dynamically loadable modules # This goes into $(exec_prefix) - sharedinstall: + sharedinstall: sharedmods - $(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.6/setup.py +Index: Python-2.7.2/setup.py =================================================================== ---- Python-2.6.6.orig/setup.py -+++ Python-2.6.6/setup.py -@@ -322,6 +322,7 @@ class PyBuildExt(build_ext): +--- Python-2.7.2.orig/setup.py ++++ Python-2.7.2/setup.py +@@ -313,6 +313,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) @@ -95,18 +104,18 @@ Index: Python-2.6.6/setup.py assert not self.inplace basename, tail = os.path.splitext(ext_filename) newname = basename + "_failed" + tail -@@ -356,8 +357,8 @@ class PyBuildExt(build_ext): +@@ -369,8 +370,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_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') ++ #add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') + self.add_multiarch_paths() # Add paths specified in the environment variables LDFLAGS and - # CPPFLAGS for header and library files. -@@ -456,6 +457,9 @@ class PyBuildExt(build_ext): +@@ -475,6 +476,9 @@ class PyBuildExt(build_ext): # XXX Omitted modules: gl, pure, dl, SGI-specific modules @@ -116,3 +125,14 @@ Index: Python-2.6.6/setup.py # # The following modules are all pretty straightforward, and compile # on pretty much any POSIXish platform. +@@ -677,8 +681,8 @@ class PyBuildExt(build_ext): + elif curses_library: + readline_libs.append(curses_library) + elif self.compiler.find_library_file(lib_dirs + +- ['/usr/lib/termcap'], +- 'termcap'): ++ ['/usr/lib/termcap'], ++ 'termcap'): + readline_libs.append('termcap') + exts.append( Extension('readline', ['readline.c'], + library_dirs=['/usr/lib/termcap'], diff --git a/meta/recipes-devtools/python/python/02-remove-test-for-cross.patch b/meta/recipes-devtools/python/python/02-remove-test-for-cross.patch deleted file mode 100644 index 9b164d5df7..0000000000 --- a/meta/recipes-devtools/python/python/02-remove-test-for-cross.patch +++ /dev/null @@ -1,108 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -# 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 -Index: Python-2.6.1/configure.in -=================================================================== ---- Python-2.6.5.orig/configure.in 2010-07-06 04:37:09.000000000 -0700 -+++ Python-2.6.5/configure.in 2010-07-06 04:40:18.000000000 -0700 -@@ -2697,50 +2697,6 @@ - AC_CHECK_LIB(resolv, inet_aton) - ) - --# On Tru64, chflags seems to be present, but calling it will --# exit Python --AC_CACHE_CHECK([for chflags], [ac_cv_have_chflags], [dnl --AC_TRY_RUN([[ --#include --#include --int main(int argc, char*argv[]) --{ -- if(chflags(argv[0], 0) != 0) -- return 1; -- return 0; --} --]], ac_cv_have_chflags=yes, -- ac_cv_have_chflags=no, -- ac_cv_have_chflags=cross) --]) --if test "$ac_cv_have_chflags" = cross ; then -- AC_CHECK_FUNC([chflags], [ac_cv_have_chflags="yes"], [ac_cv_have_chflags="no"]) --fi --if test "$ac_cv_have_chflags" = yes ; then -- AC_DEFINE(HAVE_CHFLAGS, 1, Define to 1 if you have the `chflags' function.) --fi -- --AC_CACHE_CHECK([for lchflags], [ac_cv_have_lchflags], [dnl --AC_TRY_RUN([[ --#include --#include --int main(int argc, char*argv[]) --{ -- if(lchflags(argv[0], 0) != 0) -- return 1; -- return 0; --} --]], ac_cv_have_lchflags=yes, -- ac_cv_have_lchflags=no, -- ac_cv_have_lchflags=cross) --]) --if test "$ac_cv_have_lchflags" = cross ; then -- AC_CHECK_FUNC([lchflags], [ac_cv_have_lchflags="yes"], [ac_cv_have_lchflags="no"]) --fi --if test "$ac_cv_have_lchflags" = yes ; then -- AC_DEFINE(HAVE_LCHFLAGS, 1, Define to 1 if you have the `lchflags' function.) --fi -- - dnl Check if system zlib has *Copy() functions - dnl - dnl On MacOSX the linker will search for dylibs on the entire linker path -@@ -3844,45 +3800,6 @@ - AC_MSG_RESULT(no) - fi - --AC_MSG_CHECKING(for %zd printf() format support) --AC_TRY_RUN([#include --#include --#include -- --#ifdef HAVE_SYS_TYPES_H --#include --#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 does not define.),[ 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 b39b22f496..f8ab0e71e9 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 @@ -9,11 +9,15 @@ This Patch fixes this issue in the python build environment. 11 Oct 2010 Nitin A Kamble -Index: Python-2.6.6/setup.py +2011/09/29 +Rebased for python 2.7.2 +Signed-Off-By: Nitin A Kamble + +Index: Python-2.7.2/setup.py =================================================================== ---- Python-2.6.6.orig/setup.py -+++ Python-2.6.6/setup.py -@@ -665,12 +665,10 @@ class PyBuildExt(build_ext): +--- Python-2.7.2.orig/setup.py ++++ Python-2.7.2/setup.py +@@ -680,12 +680,10 @@ class PyBuildExt(build_ext): pass # Issue 7384: Already linked against curses or tinfo. elif curses_library: readline_libs.append(curses_library) diff --git a/meta/recipes-devtools/python/python/06-ctypes-libffi-fix-configure.patch b/meta/recipes-devtools/python/python/06-ctypes-libffi-fix-configure.patch index 8de5694cb4..abd63d2a96 100644 --- a/meta/recipes-devtools/python/python/06-ctypes-libffi-fix-configure.patch +++ b/meta/recipes-devtools/python/python/06-ctypes-libffi-fix-configure.patch @@ -14,29 +14,16 @@ Acked-by: Martin Jansa Signed-off-by: Martin Jansa Signed-off-by: Saul Wold -diff -pruN Python-2.6.4.orig//Modules/_ctypes/libffi/configure.ac Python-2.6.4/Modules/_ctypes/libffi/configure.ac ---- Python-2.6.4.orig//Modules/_ctypes/libffi/configure.ac 2009-04-28 22:01:18.000000000 +0200 -+++ Python-2.6.4/Modules/_ctypes/libffi/configure.ac 2010-04-20 22:46:02.000000000 +0200 -@@ -23,6 +23,7 @@ AM_INIT_AUTOMAKE - m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS]) - m4_define([_AC_ARG_VAR_PRECIOUS],[]) - AC_PROG_CC -+m4_undefine([_AC_ARG_VAR_PRECIOUS]) - m4_rename([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) - - AC_SUBST(CFLAGS) -@@ -366,7 +367,7 @@ test -d src/$TARGETDIR || mkdir src/$TAR - - AC_CONFIG_LINKS(include/ffitarget.h:src/$TARGETDIR/ffitarget.h) - --AC_CONFIG_FILES(include/ffi.h) -+AC_CONFIG_FILES(include/ffi.h include/Makefile Makefile) - - AC_CONFIG_LINKS(include/ffi_common.h:include/ffi_common.h) - -diff -pruN Python-2.6.4.orig//Modules/_ctypes/libffi/Makefile.am Python-2.6.4/Modules/_ctypes/libffi/Makefile.am ---- Python-2.6.4.orig//Modules/_ctypes/libffi/Makefile.am 2008-03-04 21:09:11.000000000 +0100 -+++ Python-2.6.4/Modules/_ctypes/libffi/Makefile.am 2010-04-20 22:54:03.000000000 +0200 + +2011/09/29 +Rebased for python 2.7.2 +Signed-Off-By: Nitin A Kamble + + +Index: Python-2.7.2/Modules/_ctypes/libffi/Makefile.am +=================================================================== +--- Python-2.7.2.orig/Modules/_ctypes/libffi/Makefile.am ++++ Python-2.7.2/Modules/_ctypes/libffi/Makefile.am @@ -2,7 +2,7 @@ AUTOMAKE_OPTIONS = foreign subdir-objects @@ -45,14 +32,13 @@ diff -pruN Python-2.6.4.orig//Modules/_ctypes/libffi/Makefile.am Python-2.6.4/Mo +SUBDIRS = include EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \ - src/alpha/ffi.c src/alpha/osf.S src/alpha/ffitarget.h \ -@@ -32,8 +32,6 @@ EXTRA_DIST = LICENSE ChangeLog.v1 Change - src/frv/ffi.c src/frv/eabi.S src/frv/ffitarget.h src/dlmalloc.c \ - libtool-version ChangeLog.libffi + src/alpha/ffi.c src/alpha/osf.S src/alpha/ffitarget.h \ +@@ -34,8 +34,6 @@ EXTRA_DIST = LICENSE ChangeLog.v1 Change + libtool-version ChangeLog.libffi m4/libtool.m4 \ + m4/lt~obsolete.m4 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 -info_TEXINFOS = doc/libffi.texi - ## ################################################################ ## - diff --git a/meta/recipes-devtools/python/python/multilib.patch b/meta/recipes-devtools/python/python/multilib.patch index 33a334189e..babff1280e 100644 --- a/meta/recipes-devtools/python/python/multilib.patch +++ b/meta/recipes-devtools/python/python/multilib.patch @@ -10,10 +10,14 @@ Date: Tue Jun 28 21:21:29 2011 +0800 Picked-by: Yu Ke -Index: Python-2.6.6/Include/pythonrun.h +2011/09/29 +Rebased for python 2.7.2 +Signed-Off-By: Nitin A Kamble + +Index: Python-2.7.2/Include/pythonrun.h =================================================================== ---- Python-2.6.6.orig/Include/pythonrun.h -+++ Python-2.6.6/Include/pythonrun.h +--- Python-2.7.2.orig/Include/pythonrun.h ++++ Python-2.7.2/Include/pythonrun.h @@ -108,6 +108,7 @@ PyAPI_FUNC(char *) Py_GetPath(void); /* In their own files */ PyAPI_FUNC(const char *) Py_GetVersion(void); @@ -22,10 +26,10 @@ Index: Python-2.6.6/Include/pythonrun.h PyAPI_FUNC(const char *) Py_GetCopyright(void); PyAPI_FUNC(const char *) Py_GetCompiler(void); PyAPI_FUNC(const char *) Py_GetBuildInfo(void); -Index: Python-2.6.6/Lib/distutils/command/install.py +Index: Python-2.7.2/Lib/distutils/command/install.py =================================================================== ---- Python-2.6.6.orig/Lib/distutils/command/install.py -+++ Python-2.6.6/Lib/distutils/command/install.py +--- Python-2.7.2.orig/Lib/distutils/command/install.py ++++ Python-2.7.2/Lib/distutils/command/install.py @@ -22,6 +22,8 @@ from site import USER_BASE from site import USER_SITE @@ -44,11 +48,11 @@ Index: Python-2.6.6/Lib/distutils/command/install.py 'headers': '$base/include/python$py_version_short/$dist_name', 'scripts': '$base/bin', 'data' : '$base', -Index: Python-2.6.6/Lib/distutils/sysconfig.py +Index: Python-2.7.2/Lib/distutils/sysconfig.py =================================================================== ---- Python-2.6.6.orig/Lib/distutils/sysconfig.py -+++ Python-2.6.6/Lib/distutils/sysconfig.py -@@ -119,8 +119,11 @@ def get_python_lib(plat_specific=0, stan +--- Python-2.7.2.orig/Lib/distutils/sysconfig.py ++++ Python-2.7.2/Lib/distutils/sysconfig.py +@@ -114,8 +114,11 @@ def get_python_lib(plat_specific=0, stan prefix = plat_specific and EXEC_PREFIX or PREFIX if os.name == "posix": @@ -62,11 +66,11 @@ Index: Python-2.6.6/Lib/distutils/sysconfig.py if standard_lib: return libpython else: -Index: Python-2.6.6/Lib/pydoc.py +Index: Python-2.7.2/Lib/pydoc.py =================================================================== ---- Python-2.6.6.orig/Lib/pydoc.py -+++ Python-2.6.6/Lib/pydoc.py -@@ -349,7 +349,7 @@ class Doc: +--- Python-2.7.2.orig/Lib/pydoc.py ++++ Python-2.7.2/Lib/pydoc.py +@@ -352,7 +352,7 @@ class Doc: docloc = os.environ.get("PYTHONDOCS", "http://docs.python.org/library") @@ -75,40 +79,40 @@ Index: Python-2.6.6/Lib/pydoc.py "python"+sys.version[0:3]) if (isinstance(object, type(os)) and (object.__name__ in ('errno', 'exceptions', 'gc', 'imp', -Index: Python-2.6.6/Lib/site.py +Index: Python-2.7.2/Lib/site.py =================================================================== ---- Python-2.6.6.orig/Lib/site.py -+++ Python-2.6.6/Lib/site.py -@@ -265,13 +265,19 @@ def addsitepackages(known_paths): +--- Python-2.7.2.orig/Lib/site.py ++++ Python-2.7.2/Lib/site.py +@@ -300,13 +300,19 @@ def getsitepackages(): if sys.platform in ('os2emx', 'riscos'): - sitedirs.append(os.path.join(prefix, "Lib", "site-packages")) + sitepackages.append(os.path.join(prefix, "Lib", "site-packages")) elif os.sep == '/': -- sitedirs.append(os.path.join(prefix, "lib", -+ sitedirs.append(os.path.join(prefix, sys.lib, +- sitepackages.append(os.path.join(prefix, "lib", ++ sitepackages.append(os.path.join(prefix, sys.lib, "python" + sys.version[:3], "site-packages")) -- sitedirs.append(os.path.join(prefix, "lib", "site-python")) +- sitepackages.append(os.path.join(prefix, "lib", "site-python")) + if sys.lib != "lib": -+ sitedirs.append(os.path.join(prefix, "lib", ++ sitepackages.append(os.path.join(prefix, "lib", + "python" + sys.version[:3], + "site-packages")) -+ sitedirs.append(os.path.join(prefix, sys.lib, "site-python")) ++ sitepackages.append(os.path.join(prefix, sys.lib, "site-python")) + if sys.lib != "lib": -+ sitedirs.append(os.path.join(prefix, "lib", "site-python")) ++ sitepackages.append(os.path.join(prefix, "lib", "site-python")) else: - sitedirs.append(prefix) -- sitedirs.append(os.path.join(prefix, "lib", "site-packages")) -+ sitedirs.append(os.path.join(prefix, sys.lib, "site-packages")) - + sitepackages.append(prefix) +- sitepackages.append(os.path.join(prefix, "lib", "site-packages")) ++ sitepackages.append(os.path.join(prefix, sys.lib, "site-packages")) if sys.platform == "darwin": # for framework builds *only* we add the standard Apple -Index: Python-2.6.6/Lib/test/test_dl.py + # locations. +Index: Python-2.7.2/Lib/test/test_dl.py =================================================================== ---- Python-2.6.6.orig/Lib/test/test_dl.py -+++ Python-2.6.6/Lib/test/test_dl.py -@@ -4,10 +4,11 @@ - """ - from test.test_support import verbose,TestSkipped, import_module +--- Python-2.7.2.orig/Lib/test/test_dl.py ++++ Python-2.7.2/Lib/test/test_dl.py +@@ -5,10 +5,11 @@ + import unittest + from test.test_support import verbose, import_module dl = import_module('dl', deprecated=True) +import sys @@ -120,11 +124,11 @@ Index: Python-2.6.6/Lib/test/test_dl.py ('/usr/bin/cygwin1.dll', 'getpid'), ('/usr/lib/libc.dylib', 'getpid'), ] -Index: Python-2.6.6/Lib/trace.py +Index: Python-2.7.2/Lib/trace.py =================================================================== ---- Python-2.6.6.orig/Lib/trace.py -+++ Python-2.6.6/Lib/trace.py -@@ -759,10 +759,10 @@ def main(argv=None): +--- Python-2.7.2.orig/Lib/trace.py ++++ Python-2.7.2/Lib/trace.py +@@ -762,10 +762,10 @@ def main(argv=None): # should I also call expanduser? (after all, could use $HOME) s = s.replace("$prefix", @@ -137,11 +141,11 @@ Index: Python-2.6.6/Lib/trace.py "python" + sys.version[:3])) s = os.path.normpath(s) ignore_dirs.append(s) -Index: Python-2.6.6/Makefile.pre.in +Index: Python-2.7.2/Makefile.pre.in =================================================================== ---- Python-2.6.6.orig/Makefile.pre.in -+++ Python-2.6.6/Makefile.pre.in -@@ -75,6 +75,7 @@ PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAG +--- Python-2.7.2.orig/Makefile.pre.in ++++ Python-2.7.2/Makefile.pre.in +@@ -81,6 +81,7 @@ PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAG # Machine-dependent subdirectories MACHDEP= @MACHDEP@ @@ -149,7 +153,7 @@ Index: Python-2.6.6/Makefile.pre.in # Install prefix for architecture-independent files prefix= @prefix@ -@@ -91,7 +92,7 @@ LIBDIR= @libdir@ +@@ -97,7 +98,7 @@ LIBDIR= @libdir@ MANDIR= @mandir@ INCLUDEDIR= @includedir@ CONFINCLUDEDIR= $(exec_prefix)/include @@ -158,7 +162,7 @@ Index: Python-2.6.6/Makefile.pre.in # Detailed destination directories BINLIBDEST= $(LIBDIR)/python$(VERSION) -@@ -509,6 +510,7 @@ Modules/getpath.o: $(srcdir)/Modules/get +@@ -533,6 +534,7 @@ Modules/getpath.o: $(srcdir)/Modules/get -DEXEC_PREFIX='"$(exec_prefix)"' \ -DVERSION='"$(VERSION)"' \ -DVPATH='"$(VPATH)"' \ @@ -166,8 +170,8 @@ Index: Python-2.6.6/Makefile.pre.in -o $@ $(srcdir)/Modules/getpath.c Modules/python.o: $(srcdir)/Modules/python.c -@@ -540,7 +542,7 @@ $(AST_C): $(AST_ASDL) $(ASDLGEN_FILES) - Python/compile.o Python/symtable.o: $(GRAMMAR_H) $(AST_H) +@@ -567,7 +569,7 @@ $(AST_C): $(AST_ASDL) $(ASDLGEN_FILES) + Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H) Python/getplatform.o: $(srcdir)/Python/getplatform.c - $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c @@ -175,10 +179,10 @@ Index: Python-2.6.6/Makefile.pre.in Python/importdl.o: $(srcdir)/Python/importdl.c $(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c -Index: Python-2.6.6/Modules/getpath.c +Index: Python-2.7.2/Modules/getpath.c =================================================================== ---- Python-2.6.6.orig/Modules/getpath.c -+++ Python-2.6.6/Modules/getpath.c +--- Python-2.7.2.orig/Modules/getpath.c ++++ Python-2.7.2/Modules/getpath.c @@ -116,9 +116,11 @@ #define EXEC_PREFIX PREFIX #endif @@ -202,10 +206,10 @@ Index: Python-2.6.6/Modules/getpath.c static void reduce(char *dir) -Index: Python-2.6.6/Python/getplatform.c +Index: Python-2.7.2/Python/getplatform.c =================================================================== ---- Python-2.6.6.orig/Python/getplatform.c -+++ Python-2.6.6/Python/getplatform.c +--- Python-2.7.2.orig/Python/getplatform.c ++++ Python-2.7.2/Python/getplatform.c @@ -10,3 +10,13 @@ Py_GetPlatform(void) { return PLATFORM; @@ -220,11 +224,11 @@ Index: Python-2.6.6/Python/getplatform.c +{ + return LIB; +} -Index: Python-2.6.6/Python/sysmodule.c +Index: Python-2.7.2/Python/sysmodule.c =================================================================== ---- Python-2.6.6.orig/Python/sysmodule.c -+++ Python-2.6.6/Python/sysmodule.c -@@ -1379,6 +1379,8 @@ _PySys_Init(void) +--- Python-2.7.2.orig/Python/sysmodule.c ++++ Python-2.7.2/Python/sysmodule.c +@@ -1416,6 +1416,8 @@ _PySys_Init(void) PyString_FromString(Py_GetCopyright())); SET_SYS_FROM_STRING("platform", PyString_FromString(Py_GetPlatform())); @@ -233,11 +237,11 @@ Index: Python-2.6.6/Python/sysmodule.c SET_SYS_FROM_STRING("executable", PyString_FromString(Py_GetProgramFullPath())); SET_SYS_FROM_STRING("prefix", -Index: Python-2.6.6/configure.in +Index: Python-2.7.2/configure.in =================================================================== ---- Python-2.6.6.orig/configure.in -+++ Python-2.6.6/configure.in -@@ -613,6 +613,10 @@ SunOS*) +--- Python-2.7.2.orig/configure.in ++++ Python-2.7.2/configure.in +@@ -629,6 +629,10 @@ SunOS*) ;; esac diff --git a/meta/recipes-devtools/python/python/security_issue_2254_fix.patch b/meta/recipes-devtools/python/python/security_issue_2254_fix.patch deleted file mode 100644 index f0328585d5..0000000000 --- a/meta/recipes-devtools/python/python/security_issue_2254_fix.patch +++ /dev/null @@ -1,184 +0,0 @@ -Upstream-Status: Backport -http://svn.python.org/view?view=revision&revision=71303 - -Issue #2254: Fix CGIHTTPServer information disclosure. Relative paths are - now collapsed within the url properly before looking in cgi_directories. -Signed-Off-By: Nitin A Kamble -2011/07/19 - -Index: Python-2.6.6/Lib/CGIHTTPServer.py -=================================================================== ---- Python-2.6.6.orig/Lib/CGIHTTPServer.py -+++ Python-2.6.6/Lib/CGIHTTPServer.py -@@ -70,27 +70,20 @@ class CGIHTTPRequestHandler(SimpleHTTPSe - return SimpleHTTPServer.SimpleHTTPRequestHandler.send_head(self) - - def is_cgi(self): -- """Test whether self.path corresponds to a CGI script, -- and return a boolean. -+ """Test whether self.path corresponds to a CGI script. - -- This function sets self.cgi_info to a tuple (dir, rest) -- when it returns True, where dir is the directory part before -- the CGI script name. Note that rest begins with a -- slash if it is not empty. -- -- The default implementation tests whether the path -- begins with one of the strings in the list -- self.cgi_directories (and the next character is a '/' -- or the end of the string). -+ Returns True and updates the cgi_info attribute to the tuple -+ (dir, rest) if self.path requires running a CGI script. -+ Returns False otherwise. -+ -+ The default implementation tests whether the normalized url -+ path begins with one of the strings in self.cgi_directories -+ (and the next character is a '/' or the end of the string). - """ -- -- path = self.path -- -- for x in self.cgi_directories: -- i = len(x) -- if path[:i] == x and (not path[i:] or path[i] == '/'): -- self.cgi_info = path[:i], path[i+1:] -- return True -+ splitpath = _url_collapse_path_split(self.path) -+ if splitpath[0] in self.cgi_directories: -+ self.cgi_info = splitpath -+ return True - return False - - cgi_directories = ['/cgi-bin', '/htbin'] -@@ -299,6 +292,46 @@ class CGIHTTPRequestHandler(SimpleHTTPSe - self.log_message("CGI script exited OK") - - -+# TODO(gregory.p.smith): Move this into an appropriate library. -+def _url_collapse_path_split(path): -+ """ -+ Given a URL path, remove extra '/'s and '.' path elements and collapse -+ any '..' references. -+ -+ Implements something akin to RFC-2396 5.2 step 6 to parse relative paths. -+ -+ Returns: A tuple of (head, tail) where tail is everything after the final / -+ and head is everything before it. Head will always start with a '/' and, -+ if it contains anything else, never have a trailing '/'. -+ -+ Raises: IndexError if too many '..' occur within the path. -+ """ -+ # Similar to os.path.split(os.path.normpath(path)) but specific to URL -+ # path semantics rather than local operating system semantics. -+ path_parts = [] -+ for part in path.split('/'): -+ if part == '.': -+ path_parts.append('') -+ else: -+ path_parts.append(part) -+ # Filter out blank non trailing parts before consuming the '..'. -+ path_parts = [part for part in path_parts[:-1] if part] + path_parts[-1:] -+ if path_parts: -+ tail_part = path_parts.pop() -+ else: -+ tail_part = '' -+ head_parts = [] -+ for part in path_parts: -+ if part == '..': -+ head_parts.pop() -+ else: -+ head_parts.append(part) -+ if tail_part and tail_part == '..': -+ head_parts.pop() -+ tail_part = '' -+ return ('/' + '/'.join(head_parts), tail_part) -+ -+ - nobody = None - - def nobody_uid(): -Index: Python-2.6.6/Lib/test/test_httpservers.py -=================================================================== ---- Python-2.6.6.orig/Lib/test/test_httpservers.py -+++ Python-2.6.6/Lib/test/test_httpservers.py -@@ -7,6 +7,7 @@ Josip Dzolonga, and Michael Otteneder fo - from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer - from SimpleHTTPServer import SimpleHTTPRequestHandler - from CGIHTTPServer import CGIHTTPRequestHandler -+import CGIHTTPServer - - import os - import sys -@@ -324,6 +325,45 @@ class CGIHTTPServerTestCase(BaseTestCase - finally: - BaseTestCase.tearDown(self) - -+ def test_url_collapse_path_split(self): -+ test_vectors = { -+ '': ('/', ''), -+ '..': IndexError, -+ '/.//..': IndexError, -+ '/': ('/', ''), -+ '//': ('/', ''), -+ '/\\': ('/', '\\'), -+ '/.//': ('/', ''), -+ 'cgi-bin/file1.py': ('/cgi-bin', 'file1.py'), -+ '/cgi-bin/file1.py': ('/cgi-bin', 'file1.py'), -+ 'a': ('/', 'a'), -+ '/a': ('/', 'a'), -+ '//a': ('/', 'a'), -+ './a': ('/', 'a'), -+ './C:/': ('/C:', ''), -+ '/a/b': ('/a', 'b'), -+ '/a/b/': ('/a/b', ''), -+ '/a/b/c/..': ('/a/b', ''), -+ '/a/b/c/../d': ('/a/b', 'd'), -+ '/a/b/c/../d/e/../f': ('/a/b/d', 'f'), -+ '/a/b/c/../d/e/../../f': ('/a/b', 'f'), -+ '/a/b/c/../d/e/.././././..//f': ('/a/b', 'f'), -+ '../a/b/c/../d/e/.././././..//f': IndexError, -+ '/a/b/c/../d/e/../../../f': ('/a', 'f'), -+ '/a/b/c/../d/e/../../../../f': ('/', 'f'), -+ '/a/b/c/../d/e/../../../../../f': IndexError, -+ '/a/b/c/../d/e/../../../../f/..': ('/', ''), -+ } -+ for path, expected in test_vectors.iteritems(): -+ if isinstance(expected, type) and issubclass(expected, Exception): -+ self.assertRaises(expected, -+ CGIHTTPServer._url_collapse_path_split, path) -+ else: -+ actual = CGIHTTPServer._url_collapse_path_split(path) -+ self.assertEquals(expected, actual, -+ msg='path = %r\nGot: %r\nWanted: %r' % ( -+ path, actual, expected)) -+ - def test_headers_and_content(self): - res = self.request('/cgi-bin/file1.py') - self.assertEquals(('Hello World\n', 'text/html', 200), \ -@@ -348,6 +388,12 @@ class CGIHTTPServerTestCase(BaseTestCase - self.assertEquals(('Hello World\n', 'text/html', 200), \ - (res.read(), res.getheader('Content-type'), res.status)) - -+ def test_no_leading_slash(self): -+ # http://bugs.python.org/issue2254 -+ res = self.request('cgi-bin/file1.py') -+ self.assertEquals(('Hello World\n', 'text/html', 200), -+ (res.read(), res.getheader('Content-type'), res.status)) -+ - - def test_main(verbose=None): - cwd = os.getcwd() -Index: Python-2.6.6/Misc/NEWS -=================================================================== ---- Python-2.6.6.orig/Misc/NEWS -+++ Python-2.6.6/Misc/NEWS -@@ -137,6 +137,9 @@ C-API - Library - ------- - -+- Issue #2254: Fix CGIHTTPServer information disclosure. Relative paths are -+ now collapsed within the url properly before looking in cgi_directories. -+ - - Issue #8447: Make distutils.sysconfig follow symlinks in the path to - the interpreter executable. This fixes a failure of test_httpservers - on OS X. diff --git a/meta/recipes-devtools/python/python_2.6.6.bb b/meta/recipes-devtools/python/python_2.6.6.bb deleted file mode 100644 index 77c0ff47b3..0000000000 --- a/meta/recipes-devtools/python/python_2.6.6.bb +++ /dev/null @@ -1,150 +0,0 @@ -require python.inc -DEPENDS = "python-native db gdbm openssl readline sqlite3 zlib" -DEPENDS_sharprom = "python-native db readline zlib gdbm openssl" -PR = "${INC_PR}.11" -LIC_FILES_CHKSUM = "file://LICENSE;md5=38fdd546420fab09ac6bd3d8a1c83eb6" - -DISTRO_SRC_URI ?= "file://sitecustomize.py" -DISTRO_SRC_URI_linuxstdbase = "" -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-ctypes-libffi-fix-configure.patch \ - file://06-avoid_usr_lib_termcap_path_in_linking.patch \ - file://07-linux3-regen-fix.patch \ - file://99-ignore-optimization-flag.patch \ - ${DISTRO_SRC_URI} \ - file://multilib.patch \ - file://security_issue_2254_fix.patch \ - file://cgi_py.patch \ - file://remove_sqlite_rpath.patch \ -" - -SRC_URI[md5sum] = "cf4e6881bb84a7ce6089e4a307f71f14" -SRC_URI[sha256sum] = "134c5e0736bae2e5570d0b915693374f11108ded63c35a23a35d282737d2ce83" -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 || bbnote "_ctypes failed to autoreconf" -} - -do_compile() { - # - # Copy config.h and an appropriate Makefile for distutils.sysconfig, - # which laters uses the information out of these to compile extensions - # - # The following part (until python compilation) should probably moved to an - # -initial recipe to handle staging better - # - 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}/ - - # remove hardcoded ccache, see http://bugs.openembedded.net/show_bug.cgi?id=4144 - sed -i -e s,ccache,'$(CCACHE)', Makefile - - install -m 0644 Makefile Makefile.orig - sed -i -e 's,${includedir},${STAGING_INCDIR},' Makefile - sed -i -e 's,${libdir},${STAGING_LIBDIR},' Makefile - install -m 0644 Makefile ${STAGING_LIBDIR}/python${PYTHON_MAJMIN}/config/ - # save copy of it now, because if we do it in do_install and - # then call do_install twice we get Makefile.orig == Makefile.sysroot - install -m 0644 Makefile Makefile.sysroot - - 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() { - # make install needs the original Makefile, or otherwise the inclues would - # go to ${D}${STAGING...}/... - 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 Makefile.sysroot ${D}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile - - if [ -e ${WORKDIR}/sitecustomize.py ]; then - install -m 0644 ${WORKDIR}/sitecustomize.py ${D}/${libdir}/python${PYTHON_MAJMIN} - fi -} - -PACKAGE_PREPROCESS_FUNCS += "py_package_preprocess" - -py_package_preprocess () { - # copy back the old Makefile to fix target package - install -m 0644 Makefile.orig ${PKGD}/${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${BPN}2" -FILES_lib${BPN}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.7.2.bb b/meta/recipes-devtools/python/python_2.7.2.bb new file mode 100644 index 0000000000..af14adbbb3 --- /dev/null +++ b/meta/recipes-devtools/python/python_2.7.2.bb @@ -0,0 +1,144 @@ +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" + +DISTRO_SRC_URI ?= "file://sitecustomize.py" +DISTRO_SRC_URI_linuxstdbase = "" +SRC_URI += "\ + file://01-use-proper-tools-for-cross-build.patch \ + file://03-fix-tkinter-detection.patch \ + file://04-default-is-optimized.patch \ + file://05-enable-ctypes-cross-build.patch \ + file://06-ctypes-libffi-fix-configure.patch \ + file://06-avoid_usr_lib_termcap_path_in_linking.patch \ + file://07-linux3-regen-fix.patch \ + file://99-ignore-optimization-flag.patch \ + ${DISTRO_SRC_URI} \ + file://multilib.patch \ + file://cgi_py.patch \ + file://remove_sqlite_rpath.patch \ +" + +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 || bbnote "_ctypes failed to autoreconf" +} + +do_compile() { + # + # Copy config.h and an appropriate Makefile for distutils.sysconfig, + # which laters uses the information out of these to compile extensions + # + # The following part (until python compilation) should probably moved to an + # -initial recipe to handle staging better + # + 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}/ + + # remove hardcoded ccache, see http://bugs.openembedded.net/show_bug.cgi?id=4144 + sed -i -e s,ccache,'$(CCACHE)', Makefile + + install -m 0644 Makefile Makefile.orig + sed -i -e 's,${includedir},${STAGING_INCDIR},' Makefile + sed -i -e 's,${libdir},${STAGING_LIBDIR},' Makefile + install -m 0644 Makefile ${STAGING_LIBDIR}/python${PYTHON_MAJMIN}/config/ + # save copy of it now, because if we do it in do_install and + # then call do_install twice we get Makefile.orig == Makefile.sysroot + install -m 0644 Makefile Makefile.sysroot + + 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() { + # make install needs the original Makefile, or otherwise the inclues would + # go to ${D}${STAGING...}/... + 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 Makefile.sysroot ${D}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile + + if [ -e ${WORKDIR}/sitecustomize.py ]; then + install -m 0644 ${WORKDIR}/sitecustomize.py ${D}/${libdir}/python${PYTHON_MAJMIN} + fi +} + +PACKAGE_PREPROCESS_FUNCS += "py_package_preprocess" + +py_package_preprocess () { + # copy back the old Makefile to fix target package + install -m 0644 Makefile.orig ${PKGD}/${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${BPN}2" +FILES_lib${BPN}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/site/common-linux b/meta/site/common-linux index 947ed5b7d3..f441abb73a 100644 --- a/meta/site/common-linux +++ b/meta/site/common-linux @@ -43,3 +43,6 @@ ac_cv_conv_longlong_to_float=${ac_cv_conv_longlong_to_float=yes} # TCL tcl_cv_api_serial=${tcl_cv_api_serial=termios} + +# python +ac_cv_have_long_long_format=yes -- cgit 1.2.3-korg