From 29d6678fd546377459ef75cf54abeef5b969b5cf Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 27 Aug 2010 15:14:24 +0100 Subject: Major layout change to the packages directory Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie --- meta/recipes-devtools/python/fix-path.inc | 22 ++ .../python/python-2.6-manifest.inc | 268 +++++++++++++++++++++ meta/recipes-devtools/python/python-dbus_0.83.1.bb | 21 ++ .../python/python-gst/python-path.patch | 25 ++ meta/recipes-devtools/python/python-gst_0.10.18.bb | 17 ++ .../python/python-imaging/path.patch | 33 +++ .../python/python-imaging_1.1.7.bb | 30 +++ .../python/python-iniparse-native_0.3.2.bb | 6 + .../python/python-iniparse_0.3.2.bb | 11 + .../00-fix-bindir-libdir-for-cross.patch | 20 ++ .../04-default-is-optimized.patch | 18 ++ .../10-distutils-fix-swig-parameter.patch | 16 ++ .../11-distutils-never-modify-shebang-line.patch | 18 ++ ...2-distutils-prefix-is-inside-staging-area.patch | 60 +++++ .../python/python-native-2.6.5/debug.patch | 27 +++ .../python/python-native-2.6.5/nohostlibs.patch | 53 ++++ .../python/python-native-2.6.5/sitecustomize.py | 45 ++++ .../recipes-devtools/python/python-native_2.6.5.bb | 30 +++ .../python/python-pycairo_1.8.10.bb | 22 ++ .../python/python-pycurl/no-static-link.patch | 14 ++ .../python/python-pycurl_7.19.0.bb | 29 +++ .../python/python-pygobject-native_2.21.1.bb | 15 ++ .../python-pygobject/generate-constants.patch | 18 ++ .../python/python-pygobject_2.21.1.bb | 30 +++ .../python/python-pygtk/acinclude.m4 | 90 +++++++ .../python/python-pygtk/fix-gtkunixprint.patch | 16 ++ .../python/python-pygtk/nodocs.patch | 13 + .../prevent_to_get_display_during_import.patch | 14 ++ .../python/python-pygtk/python-pygtk2/acinclude.m4 | 90 +++++++ .../recipes-devtools/python/python-pygtk_2.17.0.bb | 42 ++++ .../python/python-pyrex-native_0.9.9.bb | 5 + .../python-pyrex/pyrex-fix-optimized-mode.patch | 13 + meta/recipes-devtools/python/python-pyrex_0.9.9.bb | 16 ++ .../python/python-scons-native_1.3.0.bb | 6 + meta/recipes-devtools/python/python-scons_1.3.0.bb | 12 + .../python/python-urlgrabber-native_3.9.1.bb | 4 + .../urlgrabber-3.0.0-cleanup.patch | 28 +++ .../python/python-urlgrabber/urlgrabber-HEAD.patch | 142 +++++++++++ .../python-urlgrabber/urlgrabber-reset.patch | 15 ++ .../python/python-urlgrabber_3.9.1.bb | 16 ++ meta/recipes-devtools/python/python.inc | 25 ++ .../python/00-fix-bindir-libdir-for-cross.patch | 20 ++ .../01-use-proper-tools-for-cross-build.patch | 116 +++++++++ .../python/python/02-remove-test-for-cross.patch | 106 ++++++++ .../python/python/03-fix-tkinter-detection.patch | 40 +++ .../python/python/04-default-is-optimized.patch | 52 ++++ .../python/05-enable-ctypes-cross-build.patch | 28 +++ .../python/99-ignore-optimization-flag.patch | 19 ++ .../python/python/sitecustomize.py | 45 ++++ meta/recipes-devtools/python/python_2.6.5.bb | 121 ++++++++++ .../python/yum-metadata-parser-native_1.1.4.bb | 7 + .../python/yum-metadata-parser_1.1.4.bb | 15 ++ 52 files changed, 1964 insertions(+) create mode 100644 meta/recipes-devtools/python/fix-path.inc create mode 100644 meta/recipes-devtools/python/python-2.6-manifest.inc create mode 100644 meta/recipes-devtools/python/python-dbus_0.83.1.bb create mode 100644 meta/recipes-devtools/python/python-gst/python-path.patch create mode 100644 meta/recipes-devtools/python/python-gst_0.10.18.bb create mode 100644 meta/recipes-devtools/python/python-imaging/path.patch create mode 100644 meta/recipes-devtools/python/python-imaging_1.1.7.bb create mode 100644 meta/recipes-devtools/python/python-iniparse-native_0.3.2.bb create mode 100644 meta/recipes-devtools/python/python-iniparse_0.3.2.bb create mode 100644 meta/recipes-devtools/python/python-native-2.6.5/00-fix-bindir-libdir-for-cross.patch create mode 100644 meta/recipes-devtools/python/python-native-2.6.5/04-default-is-optimized.patch create mode 100644 meta/recipes-devtools/python/python-native-2.6.5/10-distutils-fix-swig-parameter.patch create mode 100644 meta/recipes-devtools/python/python-native-2.6.5/11-distutils-never-modify-shebang-line.patch create mode 100644 meta/recipes-devtools/python/python-native-2.6.5/12-distutils-prefix-is-inside-staging-area.patch create mode 100644 meta/recipes-devtools/python/python-native-2.6.5/debug.patch create mode 100644 meta/recipes-devtools/python/python-native-2.6.5/nohostlibs.patch create mode 100644 meta/recipes-devtools/python/python-native-2.6.5/sitecustomize.py create mode 100644 meta/recipes-devtools/python/python-native_2.6.5.bb create mode 100644 meta/recipes-devtools/python/python-pycairo_1.8.10.bb create mode 100644 meta/recipes-devtools/python/python-pycurl/no-static-link.patch create mode 100644 meta/recipes-devtools/python/python-pycurl_7.19.0.bb create mode 100644 meta/recipes-devtools/python/python-pygobject-native_2.21.1.bb create mode 100644 meta/recipes-devtools/python/python-pygobject/generate-constants.patch create mode 100644 meta/recipes-devtools/python/python-pygobject_2.21.1.bb create mode 100644 meta/recipes-devtools/python/python-pygtk/acinclude.m4 create mode 100644 meta/recipes-devtools/python/python-pygtk/fix-gtkunixprint.patch create mode 100644 meta/recipes-devtools/python/python-pygtk/nodocs.patch create mode 100644 meta/recipes-devtools/python/python-pygtk/prevent_to_get_display_during_import.patch create mode 100644 meta/recipes-devtools/python/python-pygtk/python-pygtk2/acinclude.m4 create mode 100644 meta/recipes-devtools/python/python-pygtk_2.17.0.bb create mode 100644 meta/recipes-devtools/python/python-pyrex-native_0.9.9.bb create mode 100644 meta/recipes-devtools/python/python-pyrex/pyrex-fix-optimized-mode.patch create mode 100644 meta/recipes-devtools/python/python-pyrex_0.9.9.bb create mode 100644 meta/recipes-devtools/python/python-scons-native_1.3.0.bb create mode 100644 meta/recipes-devtools/python/python-scons_1.3.0.bb create mode 100644 meta/recipes-devtools/python/python-urlgrabber-native_3.9.1.bb create mode 100644 meta/recipes-devtools/python/python-urlgrabber/urlgrabber-3.0.0-cleanup.patch create mode 100644 meta/recipes-devtools/python/python-urlgrabber/urlgrabber-HEAD.patch create mode 100644 meta/recipes-devtools/python/python-urlgrabber/urlgrabber-reset.patch create mode 100644 meta/recipes-devtools/python/python-urlgrabber_3.9.1.bb create mode 100644 meta/recipes-devtools/python/python.inc create mode 100644 meta/recipes-devtools/python/python/00-fix-bindir-libdir-for-cross.patch create mode 100644 meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch create mode 100644 meta/recipes-devtools/python/python/02-remove-test-for-cross.patch create mode 100644 meta/recipes-devtools/python/python/03-fix-tkinter-detection.patch create mode 100644 meta/recipes-devtools/python/python/04-default-is-optimized.patch create mode 100644 meta/recipes-devtools/python/python/05-enable-ctypes-cross-build.patch create mode 100644 meta/recipes-devtools/python/python/99-ignore-optimization-flag.patch create mode 100644 meta/recipes-devtools/python/python/sitecustomize.py create mode 100644 meta/recipes-devtools/python/python_2.6.5.bb create mode 100644 meta/recipes-devtools/python/yum-metadata-parser-native_1.1.4.bb create mode 100644 meta/recipes-devtools/python/yum-metadata-parser_1.1.4.bb (limited to 'meta/recipes-devtools/python') diff --git a/meta/recipes-devtools/python/fix-path.inc b/meta/recipes-devtools/python/fix-path.inc new file mode 100644 index 0000000..0738c59 --- /dev/null +++ b/meta/recipes-devtools/python/fix-path.inc @@ -0,0 +1,22 @@ +do_install_append() { + for i in `find ${D} -name "*.py"` ; do \ + sed -i -e s:${D}::g $i + done + + for i in `find ${D} -name "*.la"` ; do \ + sed -i -e s:${STAGING_LIBDIR}:${libdir}:g $i + done + + if test -e ${D}${bindir} ; then + for i in ${D}${bindir}/* ; do \ + sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i + done + fi + + if test -e ${D}${sbindir} ; then + for i in ${D}${sbindir}/* ; do \ + sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i + done + fi +} + diff --git a/meta/recipes-devtools/python/python-2.6-manifest.inc b/meta/recipes-devtools/python/python-2.6-manifest.inc new file mode 100644 index 0000000..cee12c8 --- /dev/null +++ b/meta/recipes-devtools/python/python-2.6-manifest.inc @@ -0,0 +1,268 @@ + +# WARNING: This file is AUTO GENERATED: Manual edits will be lost next time I regenerate the file. +# Generator: '../../contrib/python/generate-manifest-2.6.py' Version 20091004 (C) 2002-2009 Michael 'Mickey' Lauer +# Visit the Python for Embedded Systems Site => http://www.Vanille.de/projects/python.spy + + + +PROVIDES+="python-profile python-threading python-distutils python-doctest python-stringold python-codecs python-ctypes python-pickle python-datetime python-core python-io python-compiler python-compression python-re python-xmlrpc python-terminal python-email python-image python-tests python-core-dbg python-resource python-json python-devel python-difflib python-math python-syslog python-hotshot python-unixadmin python-textutils python-tkinter python-gdbm python-elementtree python-fcntl python-netclient python-pprint python-netserver python-curses python-smtpd python-html python-readline python-subprocess python-pydoc python-logging python-mailbox python-xml python-mime python-sqlite3 python-sqlite3-tests python-unittest python-multiprocessing python-robotparser python-compile python-debugger python-pkgutil python-shell python-bsddb python-mmap python-zlib python-db python-crypt python-idle python-lang python-audio " + +PACKAGES="python-core-dbg python-profile python-threading python-distutils python-doctest python-stringold python-codecs python-ctypes python-pickle python-datetime python-core python-io python-compiler python-compression python-re python-xmlrpc python-terminal python-email python-image python-tests python-resource python-json python-devel python-difflib python-math python-syslog python-hotshot python-unixadmin python-textutils python-tkinter python-gdbm python-elementtree python-fcntl python-netclient python-pprint python-netserver python-curses python-smtpd python-html python-readline python-subprocess python-pydoc python-logging python-mailbox python-xml python-mime python-sqlite3 python-sqlite3-tests python-unittest python-multiprocessing python-robotparser python-compile python-debugger python-pkgutil python-shell python-bsddb python-mmap python-zlib python-db python-crypt python-idle python-lang python-audio python-modules" + +DESCRIPTION_python-profile="Python Basic Profiling Support" +RDEPENDS_python-profile="python-core python-textutils" +FILES_python-profile="${libdir}/python2.6/profile.* ${libdir}/python2.6/pstats.* ${libdir}/python2.6/cProfile.* ${libdir}/python2.6/lib-dynload/_lsprof.so " + +DESCRIPTION_python-threading="Python Threading & Synchronization Support" +RDEPENDS_python-threading="python-core python-lang" +FILES_python-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_python-distutils="Python Distribution Utilities" +RDEPENDS_python-distutils="python-core" +FILES_python-distutils="${libdir}/python2.6/config ${libdir}/python2.6/distutils " + +DESCRIPTION_python-doctest="Python framework for running examples in docstrings." +RDEPENDS_python-doctest="python-core python-lang python-io python-re python-unittest python-debugger python-difflib" +FILES_python-doctest="${libdir}/python2.6/doctest.* " + +DESCRIPTION_python-stringold="Python String APIs [deprecated]" +RDEPENDS_python-stringold="python-core python-re" +FILES_python-stringold="${libdir}/python2.6/lib-dynload/strop.so ${libdir}/python2.6/string.* " + +DESCRIPTION_python-codecs="Python Codecs, Encodings & i18n Support" +RDEPENDS_python-codecs="python-core python-lang" +FILES_python-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_python-ctypes="Python C Types Support" +RDEPENDS_python-ctypes="python-core" +FILES_python-ctypes="${libdir}/python2.6/ctypes ${libdir}/python2.6/lib-dynload/_ctypes.so " + +DESCRIPTION_python-pickle="Python Persistence Support" +RDEPENDS_python-pickle="python-core python-codecs python-io python-re" +FILES_python-pickle="${libdir}/python2.6/pickle.* ${libdir}/python2.6/shelve.* ${libdir}/python2.6/lib-dynload/cPickle.so " + +DESCRIPTION_python-datetime="Python Calendar and Time support" +RDEPENDS_python-datetime="python-core python-codecs" +FILES_python-datetime="${libdir}/python2.6/_strptime.* ${libdir}/python2.6/calendar.* ${libdir}/python2.6/lib-dynload/datetime.so " + +DESCRIPTION_python-core="Python Interpreter and core modules (needed!)" +RDEPENDS_python-core="" +FILES_python-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.* ${bindir}/python* " + +DESCRIPTION_python-io="Python Low-Level I/O" +RDEPENDS_python-io="python-core python-math" +FILES_python-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/tempfile.* ${libdir}/python2.6/StringIO.* " + +DESCRIPTION_python-compiler="Python Compiler Support" +RDEPENDS_python-compiler="python-core" +FILES_python-compiler="${libdir}/python2.6/compiler " + +DESCRIPTION_python-compression="Python High Level Compression Support" +RDEPENDS_python-compression="python-core python-zlib" +FILES_python-compression="${libdir}/python2.6/gzip.* ${libdir}/python2.6/zipfile.* ${libdir}/python2.6/tarfile.* ${libdir}/python2.6/lib-dynload/bz2.so " + +DESCRIPTION_python-re="Python Regular Expression APIs" +RDEPENDS_python-re="python-core" +FILES_python-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_python-xmlrpc="Python XMLRPC Support" +RDEPENDS_python-xmlrpc="python-core python-xml python-netserver python-lang" +FILES_python-xmlrpc="${libdir}/python2.6/xmlrpclib.* ${libdir}/python2.6/SimpleXMLRPCServer.* " + +DESCRIPTION_python-terminal="Python Terminal Controlling Support" +RDEPENDS_python-terminal="python-core python-io" +FILES_python-terminal="${libdir}/python2.6/pty.* ${libdir}/python2.6/tty.* " + +DESCRIPTION_python-email="Python Email Support" +RDEPENDS_python-email="python-core python-io python-re python-mime python-audio python-image python-netclient" +FILES_python-email="${libdir}/python2.6/imaplib.* ${libdir}/python2.6/email " + +DESCRIPTION_python-image="Python Graphical Image Handling" +RDEPENDS_python-image="python-core" +FILES_python-image="${libdir}/python2.6/colorsys.* ${libdir}/python2.6/imghdr.* ${libdir}/python2.6/lib-dynload/imageop.so ${libdir}/python2.6/lib-dynload/rgbimg.so " + +DESCRIPTION_python-tests="Python Tests" +RDEPENDS_python-tests="python-core" +FILES_python-tests="${libdir}/python2.6/test " + +DESCRIPTION_python-core-dbg="Python core module debug information" +RDEPENDS_python-core-dbg="python-core" +FILES_python-core-dbg="${libdir}/python2.6/config/.debug ${libdir}/python2.6/lib-dynload/.debug ${bindir}/.debug ${libdir}/.debug " + +DESCRIPTION_python-resource="Python Resource Control Interface" +RDEPENDS_python-resource="python-core" +FILES_python-resource="${libdir}/python2.6/lib-dynload/resource.so " + +DESCRIPTION_python-json="Python JSON Support" +RDEPENDS_python-json="python-core python-math python-re" +FILES_python-json="${libdir}/python2.6/json " + +DESCRIPTION_python-devel="Python Development Package" +RDEPENDS_python-devel="python-core" +FILES_python-devel="${includedir} ${libdir}/libpython2.6.so ${libdir}/python2.6/config " + +DESCRIPTION_python-difflib="Python helpers for computing deltas between objects." +RDEPENDS_python-difflib="python-lang python-re" +FILES_python-difflib="${libdir}/python2.6/difflib.* " + +DESCRIPTION_python-math="Python Math Support" +RDEPENDS_python-math="python-core" +FILES_python-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_python-syslog="Python Syslog Interface" +RDEPENDS_python-syslog="python-core" +FILES_python-syslog="${libdir}/python2.6/lib-dynload/syslog.so " + +DESCRIPTION_python-hotshot="Python Hotshot Profiler" +RDEPENDS_python-hotshot="python-core" +FILES_python-hotshot="${libdir}/python2.6/hotshot ${libdir}/python2.6/lib-dynload/_hotshot.so " + +DESCRIPTION_python-unixadmin="Python Unix Administration Support" +RDEPENDS_python-unixadmin="python-core" +FILES_python-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_python-textutils="Python Option Parsing, Text Wrapping and Comma-Separated-Value Support" +RDEPENDS_python-textutils="python-core python-io python-re python-stringold" +FILES_python-textutils="${libdir}/python2.6/lib-dynload/_csv.so ${libdir}/python2.6/csv.* ${libdir}/python2.6/optparse.* ${libdir}/python2.6/textwrap.* " + +DESCRIPTION_python-tkinter="Python Tcl/Tk Bindings" +RDEPENDS_python-tkinter="python-core" +FILES_python-tkinter="${libdir}/python2.6/lib-dynload/_tkinter.so ${libdir}/python2.6/lib-tk " + +DESCRIPTION_python-gdbm="Python GNU Database Support" +RDEPENDS_python-gdbm="python-core" +FILES_python-gdbm="${libdir}/python2.6/lib-dynload/gdbm.so " + +DESCRIPTION_python-elementtree="Python elementree" +RDEPENDS_python-elementtree="python-core" +FILES_python-elementtree="${libdir}/python2.6/lib-dynload/_elementtree.so " + +DESCRIPTION_python-fcntl="Python's fcntl Interface" +RDEPENDS_python-fcntl="python-core" +FILES_python-fcntl="${libdir}/python2.6/lib-dynload/fcntl.so " + +DESCRIPTION_python-netclient="Python Internet Protocol Clients" +RDEPENDS_python-netclient="python-core python-crypt python-datetime python-io python-lang python-logging python-mime" +FILES_python-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_python-pprint="Python Pretty-Print Support" +RDEPENDS_python-pprint="python-core" +FILES_python-pprint="${libdir}/python2.6/pprint.* " + +DESCRIPTION_python-netserver="Python Internet Protocol Servers" +RDEPENDS_python-netserver="python-core python-netclient" +FILES_python-netserver="${libdir}/python2.6/cgi.* ${libdir}/python2.6/*HTTPServer.* ${libdir}/python2.6/SocketServer.* " + +DESCRIPTION_python-curses="Python Curses Support" +RDEPENDS_python-curses="python-core" +FILES_python-curses="${libdir}/python2.6/curses ${libdir}/python2.6/lib-dynload/_curses.so ${libdir}/python2.6/lib-dynload/_curses_panel.so " + +DESCRIPTION_python-smtpd="Python Simple Mail Transport Daemon" +RDEPENDS_python-smtpd="python-core python-netserver python-email python-mime" +FILES_python-smtpd="${bindir}/smtpd.* " + +DESCRIPTION_python-html="Python HTML Processing" +RDEPENDS_python-html="python-core" +FILES_python-html="${libdir}/python2.6/formatter.* ${libdir}/python2.6/htmlentitydefs.* ${libdir}/python2.6/htmllib.* ${libdir}/python2.6/markupbase.* ${libdir}/python2.6/sgmllib.* " + +DESCRIPTION_python-readline="Python Readline Support" +RDEPENDS_python-readline="python-core" +FILES_python-readline="${libdir}/python2.6/lib-dynload/readline.so ${libdir}/python2.6/rlcompleter.* " + +DESCRIPTION_python-subprocess="Python Subprocess Support" +RDEPENDS_python-subprocess="python-core python-io python-re python-fcntl python-pickle" +FILES_python-subprocess="${libdir}/python2.6/subprocess.* " + +DESCRIPTION_python-pydoc="Python Interactive Help Support" +RDEPENDS_python-pydoc="python-core python-lang python-stringold python-re" +FILES_python-pydoc="${bindir}/pydoc ${libdir}/python2.6/pydoc.* " + +DESCRIPTION_python-logging="Python Logging Support" +RDEPENDS_python-logging="python-core python-io python-lang python-pickle python-stringold" +FILES_python-logging="${libdir}/python2.6/logging " + +DESCRIPTION_python-mailbox="Python Mailbox Format Support" +RDEPENDS_python-mailbox="python-core python-mime" +FILES_python-mailbox="${libdir}/python2.6/mailbox.* " + +DESCRIPTION_python-xml="Python basic XML support." +RDEPENDS_python-xml="python-core python-re" +FILES_python-xml="${libdir}/python2.6/lib-dynload/pyexpat.so ${libdir}/python2.6/xml ${libdir}/python2.6/xmllib.* " + +DESCRIPTION_python-mime="Python MIME Handling APIs" +RDEPENDS_python-mime="python-core python-io" +FILES_python-mime="${libdir}/python2.6/mimetools.* ${libdir}/python2.6/uu.* ${libdir}/python2.6/quopri.* ${libdir}/python2.6/rfc822.* " + +DESCRIPTION_python-sqlite3="Python Sqlite3 Database Support" +RDEPENDS_python-sqlite3="python-core python-datetime python-lang python-crypt python-io python-threading python-zlib" +FILES_python-sqlite3="${libdir}/python2.6/lib-dynload/_sqlite3.so ${libdir}/python2.6/sqlite3/dbapi2.* ${libdir}/python2.6/sqlite3/__init__.* ${libdir}/python2.6/sqlite3/dump.* " + +DESCRIPTION_python-sqlite3-tests="Python Sqlite3 Database Support Tests" +RDEPENDS_python-sqlite3-tests="python-core python-sqlite3" +FILES_python-sqlite3-tests="${libdir}/python2.6/sqlite3/test " + +DESCRIPTION_python-unittest="Python Unit Testing Framework" +RDEPENDS_python-unittest="python-core python-stringold python-lang" +FILES_python-unittest="${libdir}/python2.6/unittest.* " + +DESCRIPTION_python-multiprocessing="Python Multiprocessing Support" +RDEPENDS_python-multiprocessing="python-core python-io python-lang" +FILES_python-multiprocessing="${libdir}/python2.6/lib-dynload/_multiprocessing.so ${libdir}/python2.6/multiprocessing " + +DESCRIPTION_python-robotparser="Python robots.txt parser" +RDEPENDS_python-robotparser="python-core python-netclient" +FILES_python-robotparser="${libdir}/python2.6/robotparser.* " + +DESCRIPTION_python-compile="Python Bytecode Compilation Support" +RDEPENDS_python-compile="python-core" +FILES_python-compile="${libdir}/python2.6/py_compile.* ${libdir}/python2.6/compileall.* " + +DESCRIPTION_python-debugger="Python Debugger" +RDEPENDS_python-debugger="python-core python-io python-lang python-re python-stringold python-shell python-pprint" +FILES_python-debugger="${libdir}/python2.6/bdb.* ${libdir}/python2.6/pdb.* " + +DESCRIPTION_python-pkgutil="Python Package Extension Utility Support" +RDEPENDS_python-pkgutil="python-core" +FILES_python-pkgutil="${libdir}/python2.6/pkgutil.* " + +DESCRIPTION_python-shell="Python Shell-Like Functionality" +RDEPENDS_python-shell="python-core python-re" +FILES_python-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_python-bsddb="Python Berkeley Database Bindings" +RDEPENDS_python-bsddb="python-core" +FILES_python-bsddb="${libdir}/python2.6/bsddb ${libdir}/python2.6/lib-dynload/_bsddb.so " + +DESCRIPTION_python-mmap="Python Memory-Mapped-File Support" +RDEPENDS_python-mmap="python-core python-io" +FILES_python-mmap="${libdir}/python2.6/lib-dynload/mmap.so " + +DESCRIPTION_python-zlib="Python zlib Support." +RDEPENDS_python-zlib="python-core" +FILES_python-zlib="${libdir}/python2.6/lib-dynload/zlib.so " + +DESCRIPTION_python-db="Python File-Based Database Support" +RDEPENDS_python-db="python-core" +FILES_python-db="${libdir}/python2.6/anydbm.* ${libdir}/python2.6/dumbdbm.* ${libdir}/python2.6/whichdb.* " + +DESCRIPTION_python-crypt="Python Basic Cryptographic and Hashing Support" +RDEPENDS_python-crypt="python-core" +FILES_python-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_python-idle="Python Integrated Development Environment" +RDEPENDS_python-idle="python-core python-tkinter" +FILES_python-idle="${bindir}/idle ${libdir}/python2.6/idlelib " + +DESCRIPTION_python-lang="Python Low-Level Language Support" +RDEPENDS_python-lang="python-core" +FILES_python-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/linecache.* ${libdir}/python2.6/weakref.* " + +DESCRIPTION_python-audio="Python Audio Handling" +RDEPENDS_python-audio="python-core" +FILES_python-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_python-modules="All Python modules" +RDEPENDS_python-modules="python-profile python-threading python-distutils python-doctest python-stringold python-codecs python-ctypes python-pickle python-datetime python-core python-io python-compiler python-compression python-re python-xmlrpc python-terminal python-email python-image python-tests python-resource python-json python-devel python-difflib python-math python-syslog python-hotshot python-unixadmin python-textutils python-tkinter python-gdbm python-elementtree python-fcntl python-netclient python-pprint python-netserver python-curses python-smtpd python-html python-readline python-subprocess python-pydoc python-logging python-mailbox python-xml python-mime python-sqlite3 python-sqlite3-tests python-unittest python-multiprocessing python-robotparser python-compile python-debugger python-pkgutil python-shell python-bsddb python-mmap python-zlib python-db python-crypt python-idle python-lang python-audio " +ALLOW_EMPTY_python-modules = "1" + + diff --git a/meta/recipes-devtools/python/python-dbus_0.83.1.bb b/meta/recipes-devtools/python/python-dbus_0.83.1.bb new file mode 100644 index 0000000..b30e82b --- /dev/null +++ b/meta/recipes-devtools/python/python-dbus_0.83.1.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "Python bindings for DBus, a socket-based message bus system for interprocess communication" +SECTION = "devel/python" +HOMEPAGE = "http://www.freedesktop.org/Software/dbus" +LICENSE = "MIT" +DEPENDS = "expat dbus dbus-glib virtual/libintl python-pyrex-native" +PR = "ml0" + +SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.tar.gz" +S = "${WORKDIR}/dbus-python-${PV}" + +inherit distutils-base autotools pkgconfig + +export BUILD_SYS +export HOST_SYS + +export STAGING_LIBDIR +export STAGING_INCDIR + +RDEPENDS = "python-io python-logging python-stringold python-threading python-xml" + +FILES_${PN}-dev += "${libdir}/pkgconfig diff --git a/meta/recipes-devtools/python/python-gst/python-path.patch b/meta/recipes-devtools/python/python-gst/python-path.patch new file mode 100644 index 0000000..af5badd --- /dev/null +++ b/meta/recipes-devtools/python/python-gst/python-path.patch @@ -0,0 +1,25 @@ +Index: gst-python-0.10.18/acinclude.m4 +=================================================================== +--- gst-python-0.10.18.orig/acinclude.m4 ++++ gst-python-0.10.18/acinclude.m4 +@@ -43,6 +43,12 @@ AC_DEFUN([AM_CHECK_PYTHON_HEADERS], + [AC_REQUIRE([AM_PATH_PYTHON]) + AC_MSG_CHECKING(for headers required to compile python extensions) + dnl deduce PYTHON_INCLUDES ++ ++AC_ARG_WITH(python-includes, ++ [ --with-python-includes=DIR path to Python includes], py_exec_prefix=$withval) ++if test x$py_exec_prefix != x; then ++PYTHON_INCLUDES="-I${py_exec_prefix}/include/python${PYTHON_VERSION}" ++else + py_prefix=`$PYTHON -c "import sys; print sys.prefix"` + py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"` + if $PYTHON-config --help 2>/dev/null; then +@@ -53,6 +59,7 @@ else + PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}" + fi + fi ++fi + AC_SUBST(PYTHON_INCLUDES) + dnl check if the headers exist: + save_CPPFLAGS="$CPPFLAGS" diff --git a/meta/recipes-devtools/python/python-gst_0.10.18.bb b/meta/recipes-devtools/python/python-gst_0.10.18.bb new file mode 100644 index 0000000..9de07b3 --- /dev/null +++ b/meta/recipes-devtools/python/python-gst_0.10.18.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "Python Gstreamer bindings" +SECTION = "devel/python" +LICENSE = "LGPL" +DEPENDS = "gstreamer gst-plugins-base python-pygobject" +PR = "ml1" + +SRC_URI = "http://gstreamer.freedesktop.org/src/gst-python/gst-python-${PV}.tar.bz2 \ + file://python-path.patch" +S = "${WORKDIR}/gst-python-${PV}" + +inherit autotools distutils-base pkgconfig + +EXTRA_OECONF += "--with-python-includes=${STAGING_INCDIR}/../" + +FILES_${PN} += "${datadir}/gst-python" +FILES_${PN}-dev += "${datadir}/gst-python/0.10/defs" +FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/gst-0.10/gst/.debug/" diff --git a/meta/recipes-devtools/python/python-imaging/path.patch b/meta/recipes-devtools/python/python-imaging/path.patch new file mode 100644 index 0000000..264dcc0 --- /dev/null +++ b/meta/recipes-devtools/python/python-imaging/path.patch @@ -0,0 +1,33 @@ +Index: Imaging-1.1.7/setup.py +=================================================================== +--- Imaging-1.1.7.orig/setup.py ++++ Imaging-1.1.7/setup.py +@@ -34,10 +34,10 @@ def libinclude(root): + # TIFF_ROOT = libinclude("/opt/tiff") + + TCL_ROOT = None +-JPEG_ROOT = None +-ZLIB_ROOT = None ++JPEG_ROOT = os.environ['STAGING_LIBDIR'] ++ZLIB_ROOT = os.environ['STAGING_LIBDIR'] + TIFF_ROOT = None +-FREETYPE_ROOT = None ++FREETYPE_ROOT = os.environ['STAGING_LIBDIR'], os.environ['STAGING_INCDIR'] + LCMS_ROOT = None + + # FIXME: add mechanism to explicitly *disable* the use of a library +@@ -207,14 +207,6 @@ class pil_build_ext(build_ext): + if os.path.isfile(os.path.join(tcl_dir, "tk.h")): + add_directory(include_dirs, tcl_dir) + +- # standard locations +- add_directory(library_dirs, "/usr/local/lib") +- add_directory(include_dirs, "/usr/local/include") +- +- add_directory(library_dirs, "/usr/lib") +- add_directory(include_dirs, "/usr/include") +- +- # + # insert new dirs *before* default libs, to avoid conflicts + # between Python PYD stub libs and real libraries + diff --git a/meta/recipes-devtools/python/python-imaging_1.1.7.bb b/meta/recipes-devtools/python/python-imaging_1.1.7.bb new file mode 100644 index 0000000..9812043 --- /dev/null +++ b/meta/recipes-devtools/python/python-imaging_1.1.7.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "Python Imaging Library" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +DEPENDS = "freetype jpeg tiff" +RDEPENDS = "python-lang python-stringold" +SRCNAME = "Imaging" +PR = "ml0" + +SRC_URI = "http://effbot.org/downloads/Imaging-${PV}.tar.gz \ + file://path.patch" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +do_compile() { + export STAGING_LIBDIR=${STAGING_LIBDIR} + export STAGING_INCDIR=${STAGING_INCDIR} + distutils_do_compile +} + +do_install() { + export STAGING_LIBDIR=${STAGING_LIBDIR} + export STAGING_INCDIR=${STAGING_INCDIR} + distutils_do_install + install -d ${D}${datadir}/doc/${PN}/html/ + install -m 0644 ${S}/README ${D}${datadir}/doc/${PN}/ + install -m 0644 ${S}/Docs/* ${D}${datadir}/doc/${PN}/html/ + +} diff --git a/meta/recipes-devtools/python/python-iniparse-native_0.3.2.bb b/meta/recipes-devtools/python/python-iniparse-native_0.3.2.bb new file mode 100644 index 0000000..41aa13d --- /dev/null +++ b/meta/recipes-devtools/python/python-iniparse-native_0.3.2.bb @@ -0,0 +1,6 @@ +require python-iniparse_${PV}.bb +inherit native +DEPENDS = "python-native" +RDEPENDS = "" +PR = "r0" + diff --git a/meta/recipes-devtools/python/python-iniparse_0.3.2.bb b/meta/recipes-devtools/python/python-iniparse_0.3.2.bb new file mode 100644 index 0000000..27a38f4 --- /dev/null +++ b/meta/recipes-devtools/python/python-iniparse_0.3.2.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "iniparse is a INI parser for Python" +HOMEPAGE = "http://code.google.com/p/iniparse/" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +PR = "r0" + +SRC_URI = "http://iniparse.googlecode.com/files/iniparse-${PV}.tar.gz" +S = "${WORKDIR}/iniparse-${PV}" + +inherit distutils diff --git a/meta/recipes-devtools/python/python-native-2.6.5/00-fix-bindir-libdir-for-cross.patch b/meta/recipes-devtools/python/python-native-2.6.5/00-fix-bindir-libdir-for-cross.patch new file mode 100644 index 0000000..2559e3a --- /dev/null +++ b/meta/recipes-devtools/python/python-native-2.6.5/00-fix-bindir-libdir-for-cross.patch @@ -0,0 +1,20 @@ +# $(exec_prefix) points to the wrong directory, when installing +# a cross-build. @bindir@ and @libdir@ works better and doesn't +# affect the native build. +# Signed-Off: Michael 'Mickey' Lauer + +Index: Python-2.6.1/Makefile.pre.in +=================================================================== +--- Python-2.6.1.orig/Makefile.pre.in ++++ Python-2.6.1/Makefile.pre.in +@@ -86,8 +86,8 @@ exec_prefix= @exec_prefix@ + datarootdir= @datarootdir@ + + # Expanded directories +-BINDIR= $(exec_prefix)/bin +-LIBDIR= $(exec_prefix)/lib ++BINDIR= @bindir@ ++LIBDIR= @libdir@ + MANDIR= @mandir@ + INCLUDEDIR= @includedir@ + CONFINCLUDEDIR= $(exec_prefix)/include diff --git a/meta/recipes-devtools/python/python-native-2.6.5/04-default-is-optimized.patch b/meta/recipes-devtools/python/python-native-2.6.5/04-default-is-optimized.patch new file mode 100644 index 0000000..5131e0b --- /dev/null +++ b/meta/recipes-devtools/python/python-native-2.6.5/04-default-is-optimized.patch @@ -0,0 +1,18 @@ +# When compiling for an embedded system, we need every bit of +# performance we can get. default to optimized with the option +# of opt-out. +# Signed-Off: Michael 'Mickey' Lauer + +Index: Python-2.6.1/Python/compile.c +=================================================================== +--- Python-2.6.1.orig/Python/compile.c ++++ Python-2.6.1/Python/compile.c +@@ -32,7 +32,7 @@ + #include "symtable.h" + #include "opcode.h" + +-int Py_OptimizeFlag = 0; ++int Py_OptimizeFlag = 1; + + #define DEFAULT_BLOCK_SIZE 16 + #define DEFAULT_BLOCKS 8 diff --git a/meta/recipes-devtools/python/python-native-2.6.5/10-distutils-fix-swig-parameter.patch b/meta/recipes-devtools/python/python-native-2.6.5/10-distutils-fix-swig-parameter.patch new file mode 100644 index 0000000..f5e852a --- /dev/null +++ b/meta/recipes-devtools/python/python-native-2.6.5/10-distutils-fix-swig-parameter.patch @@ -0,0 +1,16 @@ +# Some versions of SWIG do not use the extension parameter. +# Make it optional. +# Signed-Off: Michael 'Mickey' Lauer +Index: Python-2.6.1/Lib/distutils/command/build_ext.py +=================================================================== +--- Python-2.6.1.orig/Lib/distutils/command/build_ext.py ++++ Python-2.6.1/Lib/distutils/command/build_ext.py +@@ -566,7 +566,7 @@ class build_ext (Command): + target_lang=language) + + +- def swig_sources (self, sources, extension): ++ def swig_sources (self, sources, extension=None): + + """Walk the list of source files in 'sources', looking for SWIG + interface (.i) files. Run SWIG on all that are found, and diff --git a/meta/recipes-devtools/python/python-native-2.6.5/11-distutils-never-modify-shebang-line.patch b/meta/recipes-devtools/python/python-native-2.6.5/11-distutils-never-modify-shebang-line.patch new file mode 100644 index 0000000..8354e26 --- /dev/null +++ b/meta/recipes-devtools/python/python-native-2.6.5/11-distutils-never-modify-shebang-line.patch @@ -0,0 +1,18 @@ +# Don't modify the she-bang line for a cross-build. +# Otherwise it points to our hostpython (which we do not want) +# +# Signed-Off: Michael 'Mickey' Lauer + +Index: Python-2.6.1/Lib/distutils/command/build_scripts.py +=================================================================== +--- Python-2.6.1.orig/Lib/distutils/command/build_scripts.py ++++ Python-2.6.1/Lib/distutils/command/build_scripts.py +@@ -87,7 +87,7 @@ class build_scripts (Command): + continue + + match = first_line_re.match(first_line) +- if match: ++ if False: #match: + adjust = 1 + post_interp = match.group(1) or '' + diff --git a/meta/recipes-devtools/python/python-native-2.6.5/12-distutils-prefix-is-inside-staging-area.patch b/meta/recipes-devtools/python/python-native-2.6.5/12-distutils-prefix-is-inside-staging-area.patch new file mode 100644 index 0000000..aa43936 --- /dev/null +++ b/meta/recipes-devtools/python/python-native-2.6.5/12-distutils-prefix-is-inside-staging-area.patch @@ -0,0 +1,60 @@ +# The proper prefix is inside our staging area. +# Signed-Off: Michael 'Mickey' Lauer + +Index: Python-2.6.1/Lib/distutils/sysconfig.py +=================================================================== +--- Python-2.6.1.orig/Lib/distutils/sysconfig.py ++++ Python-2.6.1/Lib/distutils/sysconfig.py +@@ -19,8 +19,8 @@ import sys + from distutils.errors import DistutilsPlatformError + + # These are needed in a couple of spots, so just compute them once. +-PREFIX = os.path.normpath(sys.prefix) +-EXEC_PREFIX = os.path.normpath(sys.exec_prefix) ++PREFIX = os.path.normpath(sys.prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") ) ++EXEC_PREFIX = os.path.normpath(sys.exec_prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") ) + + # Path to the base directory of the project. On Windows the binary may + # live in project/PCBuild9. If we're dealing with an x64 Windows build, +@@ -70,7 +70,10 @@ def get_python_inc(plat_specific=0, pref + sys.exec_prefix -- i.e., ignore 'plat_specific'. + """ + if prefix is None: +- prefix = plat_specific and EXEC_PREFIX or PREFIX ++ if plat_specific: ++ prefix = plat_specific and os.environ['STAGING_INCDIR'].rstrip('include') ++ else: ++ prefix = plat_specific and EXEC_PREFIX or PREFIX + if os.name == "posix": + if python_build: + base = os.path.dirname(os.path.abspath(sys.executable)) +@@ -112,7 +115,10 @@ def get_python_lib(plat_specific=0, stan + sys.exec_prefix -- i.e., ignore 'plat_specific'. + """ + if prefix is None: +- prefix = plat_specific and EXEC_PREFIX or PREFIX ++ if plat_specific: ++ prefix = plat_specific and os.environ['STAGING_LIBDIR'].rstrip('lib') ++ else: ++ prefix = plat_specific and EXEC_PREFIX or PREFIX + + if os.name == "posix": + libpython = os.path.join(prefix, +@@ -218,7 +218,7 @@ def get_config_h_filename(): + else: + # The name of the config.h file changed in 2.2 + config_h = 'pyconfig.h' +- return os.path.join(inc_dir, config_h) ++ return os.path.join(inc_dir, config_h).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") ) + + + def get_makefile_filename(): +@@ -226,7 +226,7 @@ def get_makefile_filename(): + if python_build: + return os.path.join(os.path.dirname(sys.executable), "Makefile") + lib_dir = get_python_lib(plat_specific=1, standard_lib=1) +- return os.path.join(lib_dir, "config", "Makefile") ++ return os.path.join(lib_dir, "config", "Makefile").replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") ) + + + def parse_config_h(fp, g=None): diff --git a/meta/recipes-devtools/python/python-native-2.6.5/debug.patch b/meta/recipes-devtools/python/python-native-2.6.5/debug.patch new file mode 100644 index 0000000..beb3adc --- /dev/null +++ b/meta/recipes-devtools/python/python-native-2.6.5/debug.patch @@ -0,0 +1,27 @@ +Index: Python-2.6.1/Lib/distutils/unixccompiler.py +=================================================================== +--- Python-2.6.1.orig/Lib/distutils/unixccompiler.py 2009-11-13 16:04:54.000000000 +0000 ++++ Python-2.6.1/Lib/distutils/unixccompiler.py 2009-11-13 16:06:27.000000000 +0000 +@@ -300,6 +300,8 @@ + dylib_f = self.library_filename(lib, lib_type='dylib') + static_f = self.library_filename(lib, lib_type='static') + ++ print "Looking in %s for %s" % (lib, dirs) ++ + for dir in dirs: + shared = os.path.join(dir, shared_f) + dylib = os.path.join(dir, dylib_f) +@@ -309,10 +311,13 @@ + # assuming that *all* Unix C compilers do. And of course I'm + # ignoring even GCC's "-static" option. So sue me. + if os.path.exists(dylib): ++ print "Found %s" % (dylib) + return dylib + elif os.path.exists(shared): ++ print "Found %s" % (shared) + return shared + elif os.path.exists(static): ++ print "Found %s" % (static) + return static + + # Oops, didn't find it in *any* of 'dirs' diff --git a/meta/recipes-devtools/python/python-native-2.6.5/nohostlibs.patch b/meta/recipes-devtools/python/python-native-2.6.5/nohostlibs.patch new file mode 100644 index 0000000..7020f3c --- /dev/null +++ b/meta/recipes-devtools/python/python-native-2.6.5/nohostlibs.patch @@ -0,0 +1,53 @@ +Index: Python-2.6.1/setup.py +=================================================================== +--- Python-2.6.1.orig/setup.py 2009-11-13 16:20:47.000000000 +0000 ++++ Python-2.6.1/setup.py 2009-11-13 16:28:00.000000000 +0000 +@@ -310,8 +310,8 @@ + + def detect_modules(self): + # Ensure that /usr/local is always used +- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') +- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') ++ #add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') ++ #add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') + + # Add paths specified in the environment variables LDFLAGS and + # CPPFLAGS for header and library files. +@@ -347,10 +347,10 @@ + for directory in reversed(options.dirs): + add_dir_to_list(dir_list, directory) + +- if os.path.normpath(sys.prefix) != '/usr': +- add_dir_to_list(self.compiler.library_dirs, ++ ++ add_dir_to_list(self.compiler.library_dirs, + sysconfig.get_config_var("LIBDIR")) +- add_dir_to_list(self.compiler.include_dirs, ++ add_dir_to_list(self.compiler.include_dirs, + sysconfig.get_config_var("INCLUDEDIR")) + + try: +@@ -361,11 +361,8 @@ + # lib_dirs and inc_dirs are used to search for files; + # if a file is found in one of those directories, it can + # be assumed that no additional -I,-L directives are needed. +- lib_dirs = self.compiler.library_dirs + [ +- '/lib64', '/usr/lib64', +- '/lib', '/usr/lib', +- ] +- inc_dirs = self.compiler.include_dirs + ['/usr/include'] ++ lib_dirs = self.compiler.library_dirs ++ inc_dirs = self.compiler.include_dirs + exts = [] + missing = [] + +@@ -583,8 +580,7 @@ + readline_libs.append('ncurses') + elif self.compiler.find_library_file(lib_dirs, 'curses'): + readline_libs.append('curses') +- elif self.compiler.find_library_file(lib_dirs + +- ['/usr/lib/termcap'], ++ elif self.compiler.find_library_file(lib_dirs, + 'termcap'): + readline_libs.append('termcap') + exts.append( Extension('readline', ['readline.c'], diff --git a/meta/recipes-devtools/python/python-native-2.6.5/sitecustomize.py b/meta/recipes-devtools/python/python-native-2.6.5/sitecustomize.py new file mode 100644 index 0000000..2739018 --- /dev/null +++ b/meta/recipes-devtools/python/python-native-2.6.5/sitecustomize.py @@ -0,0 +1,45 @@ +# OpenEmbedded sitecustomize.py (C) 2002-2008 Michael 'Mickey' Lauer +# GPLv2 or later +# Version: 20081123 +# Features: +# * set proper default encoding +# * enable readline completion in the interactive interpreter +# * load command line history on startup +# * save command line history on exit + +import os + +def __exithandler(): + try: + readline.write_history_file( "%s/.python-history" % os.getenv( "HOME", "/tmp" ) ) + except IOError: + pass + +def __registerExitHandler(): + import atexit + atexit.register( __exithandler ) + +def __enableReadlineSupport(): + readline.set_history_length( 1000 ) + readline.parse_and_bind( "tab: complete" ) + try: + readline.read_history_file( "%s/.python-history" % os.getenv( "HOME", "/tmp" ) ) + except IOError: + pass + +def __enableDefaultEncoding(): + import sys + try: + sys.setdefaultencoding( "utf8" ) + except LookupError: + pass + +import sys +try: + import rlcompleter, readline +except ImportError: + pass +else: + __enableDefaultEncoding() + __registerExitHandler() + __enableReadlineSupport() diff --git a/meta/recipes-devtools/python/python-native_2.6.5.bb b/meta/recipes-devtools/python/python-native_2.6.5.bb new file mode 100644 index 0000000..cb95e4b --- /dev/null +++ b/meta/recipes-devtools/python/python-native_2.6.5.bb @@ -0,0 +1,30 @@ +require python.inc +DEPENDS = "openssl-native bzip2-full-native zlib-native readline-native sqlite3-native" +PR = "${INC_PR}.3" + +SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2 \ + file://00-fix-bindir-libdir-for-cross.patch \ + file://04-default-is-optimized.patch \ + file://05-enable-ctypes-cross-build.patch \ + file://10-distutils-fix-swig-parameter.patch \ + file://11-distutils-never-modify-shebang-line.patch \ + file://12-distutils-prefix-is-inside-staging-area.patch \ + file://debug.patch \ + file://nohostlibs.patch" +S = "${WORKDIR}/Python-${PV}" + +inherit native + +EXTRA_OEMAKE = '\ + BUILD_SYS="" \ + HOST_SYS="" \ + LIBC="" \ + STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} \ + STAGING_INCDIR=${STAGING_INCDIR_NATIVE} \ +' + +do_install() { + oe_runmake 'DESTDIR=${D}' install + install -d ${D}${bindir}/ + install -m 0755 Parser/pgen ${D}${bindir}/ +} diff --git a/meta/recipes-devtools/python/python-pycairo_1.8.10.bb b/meta/recipes-devtools/python/python-pycairo_1.8.10.bb new file mode 100644 index 0000000..1ff6038 --- /dev/null +++ b/meta/recipes-devtools/python/python-pycairo_1.8.10.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "Python Bindings for the Cairo canvas library" +HOMEPAGE = "http://cairographics.org/pycairo" +BUGTRACKER = "http://bugs.freedesktop.org" +SECTION = "python-devel" +LICENSE = "LGPLv2.1 & MPLv1.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=f2e071ab72978431b294a0d696327421" +# cairo >= 1.8.8 +DEPENDS = "cairo" +PR = "ml0" + +SRC_URI = "http://cairographics.org/releases/py2cairo-${PV}.tar.gz" +S = "${WORKDIR}/pycairo-${PV}" + +inherit distutils pkgconfig + +do_install_append () { + install -d ${D}${includedir} + install -d ${D}${libdir} + mv ${D}${datadir}/include/* ${D}${includedir} + mv ${D}${datadir}/lib/* ${D}${libdir} + sed -i -e 's#prefix=.*#prefix=${prefix}#' ${D}${libdir}/pkgconfig/pycairo.pc +} diff --git a/meta/recipes-devtools/python/python-pycurl/no-static-link.patch b/meta/recipes-devtools/python/python-pycurl/no-static-link.patch new file mode 100644 index 0000000..b7c5ab9 --- /dev/null +++ b/meta/recipes-devtools/python/python-pycurl/no-static-link.patch @@ -0,0 +1,14 @@ +Index: pycurl-7.18.2/setup.py +=================================================================== +--- pycurl-7.18.2.orig/setup.py ++++ pycurl-7.18.2/setup.py +@@ -97,8 +97,7 @@ else: + else: + extra_compile_args.append(e) + libs = split_quoted( +- os.popen("'%s' --libs" % CURL_CONFIG).read()+\ +- os.popen("'%s' --static-libs" % CURL_CONFIG).read()) ++ os.popen("'%s' --libs" % CURL_CONFIG).read()) + for e in libs: + if e[:2] == "-l": + libraries.append(e[2:]) diff --git a/meta/recipes-devtools/python/python-pycurl_7.19.0.bb b/meta/recipes-devtools/python/python-pycurl_7.19.0.bb new file mode 100644 index 0000000..1a04767 --- /dev/null +++ b/meta/recipes-devtools/python/python-pycurl_7.19.0.bb @@ -0,0 +1,29 @@ +DESCRIPTION = "libcurl python bindings." +HOMEPAGE = "http://pycurl.sourceforge.net/" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "LGPLv2.1+ | MIT" +LIC_FILES_CHKSUM = "file://README;endline=13;md5=fbfe545b1869617123a08c0983ef17b2 \ + file://COPYING;md5=3579a9fd0221d49a237aaa33492f988c \ + file://COPYING2;md5=ffaa1e283b7f9bf5aafd8d45db6f7518" + +DEPENDS = "curl python" +RDEPENDS = "python-core curl" +SRCNAME = "pycurl" +PR = "r0" + +SRC_URI = "\ + http://${SRCNAME}.sourceforge.net/download/${SRCNAME}-${PV}.tar.gz;name=archive \ + file://no-static-link.patch;patch=1 \ +" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +# need to export these variables for python-config to work +export BUILD_SYS +export HOST_SYS +export STAGING_INCDIR +export STAGING_LIBDIR + +BBCLASSEXTEND = "native" diff --git a/meta/recipes-devtools/python/python-pygobject-native_2.21.1.bb b/meta/recipes-devtools/python/python-pygobject-native_2.21.1.bb new file mode 100644 index 0000000..d360227 --- /dev/null +++ b/meta/recipes-devtools/python/python-pygobject-native_2.21.1.bb @@ -0,0 +1,15 @@ +require python-pygobject_${PV}.bb + +DEPENDS = "python-native glib-2.0-native" +PR = "r0" + +PARALLEL_MAKE = "" + +inherit native + +SRC_URI = "ftp://ftp.gnome.org/pub/GNOME/sources/pygobject/${MAJ_VER}/pygobject-${PV}.tar.bz2" + +do_install_append() { + install -d ${D}${bindir} + install -m 0755 gobject/generate-constants ${D}${bindir}/gobject-generate-constants +} diff --git a/meta/recipes-devtools/python/python-pygobject/generate-constants.patch b/meta/recipes-devtools/python/python-pygobject/generate-constants.patch new file mode 100644 index 0000000..57a9380 --- /dev/null +++ b/meta/recipes-devtools/python/python-pygobject/generate-constants.patch @@ -0,0 +1,18 @@ +Index: pygobject-2.14.2/gobject/Makefile.am +=================================================================== +--- pygobject-2.14.2.orig/gobject/Makefile.am ++++ pygobject-2.14.2/gobject/Makefile.am +@@ -21,11 +21,11 @@ if PLATFORM_WIN32 + common_ldflags += -no-undefined + endif + +-constants.py: generate-constants$(EXEEXT) constants.py.in ++constants.py: constants.py.in + rm -f constants.py + cp $(srcdir)/constants.py.in constants.py + chmod 644 constants.py +- $(top_builddir)/gobject/generate-constants$(EXEEXT) >> constants.py ++ gobject-generate-constants$(EXEEXT) >> constants.py + chmod 444 constants.py + + generate_constants_CFLAGS = $(GLIB_CFLAGS) diff --git a/meta/recipes-devtools/python/python-pygobject_2.21.1.bb b/meta/recipes-devtools/python/python-pygobject_2.21.1.bb new file mode 100644 index 0000000..b815e4c --- /dev/null +++ b/meta/recipes-devtools/python/python-pygobject_2.21.1.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "Python GObject bindings" +SECTION = "devel/python" +LICENSE = "LGPL" +DEPENDS = "python-pygobject-native-${PV} glib-2.0" +PR = "ml0" + +MAJ_VER = "${@bb.data.getVar('PV',d,1).split('.')[0]}.${@bb.data.getVar('PV',d,1).split('.')[1]}" + +SRC_URI = "ftp://ftp.gnome.org/pub/GNOME/sources/pygobject/${MAJ_VER}/pygobject-${PV}.tar.bz2 \ + file://generate-constants.patch" +S = "${WORKDIR}/pygobject-${PV}" + +FILESPATH = "${FILE_DIRNAME}/python-pygobject:${FILE_DIRNAME}/files" + +inherit autotools distutils-base pkgconfig + +# necessary to let the call for python-config succeed +export BUILD_SYS +export HOST_SYS +export STAGING_INCDIR +export STAGING_LIBDIR + +PACKAGES += "${PN}-lib" + +RDEPENDS_${PN} += "python-textutils" + +FILES_${PN} = "${libdir}/python*" +FILES_${PN}-lib = "${libdir}/lib*.so.*" +FILES_${PN}-dev += "${bindir} ${datadir}" +FILES_${PN}-dbg += "${libdir}/.debug" diff --git a/meta/recipes-devtools/python/python-pygtk/acinclude.m4 b/meta/recipes-devtools/python/python-pygtk/acinclude.m4 new file mode 100644 index 0000000..53518fb --- /dev/null +++ b/meta/recipes-devtools/python/python-pygtk/acinclude.m4 @@ -0,0 +1,90 @@ +## this one is commonly used with AM_PATH_PYTHONDIR ... +dnl AM_CHECK_PYMOD(MODNAME [,SYMBOL [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]]) +dnl Check if a module containing a given symbol is visible to python. +AC_DEFUN(AM_CHECK_PYMOD, +[AC_REQUIRE([AM_PATH_PYTHON]) +py_mod_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'` +AC_MSG_CHECKING(for ifelse([$2],[],,[$2 in ])python module $1) +AC_CACHE_VAL(py_cv_mod_$py_mod_var, [ +ifelse([$2],[], [prog=" +import sys +try: + import $1 +except ImportError: + sys.exit(1) +except: + sys.exit(0) +sys.exit(0)"], [prog=" +import $1 +$1.$2"]) +if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC + then + eval "py_cv_mod_$py_mod_var=yes" + else + eval "py_cv_mod_$py_mod_var=no" + fi +]) +py_val=`eval "echo \`echo '$py_cv_mod_'$py_mod_var\`"` +if test "x$py_val" != xno; then + AC_MSG_RESULT(yes) + ifelse([$3], [],, [$3 +])dnl +else + AC_MSG_RESULT(no) + ifelse([$4], [],, [$4 +])dnl +fi +]) + +dnl a macro to check for ability to create python extensions +dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE]) +dnl function also defines PYTHON_INCLUDES +AC_DEFUN([AM_CHECK_PYTHON_HEADERS], +[AC_REQUIRE([AM_PATH_PYTHON]) +AC_MSG_CHECKING(for headers required to compile python extensions) +dnl deduce PYTHON_INCLUDES +AC_ARG_WITH(python-includes, + [ --with-python-includes=DIR path to Python includes], py_exec_prefix=$withval) +if test x$py_exec_prefix != x; then +PYTHON_INCLUDES="-I${py_exec_prefix}/include/python${PYTHON_VERSION}" +else +py_prefix=`$PYTHON -c "import sys; print sys.prefix"` +py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"` +PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}" +if test "$py_prefix" != "$py_exec_prefix"; then + PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}" +fi +fi +AC_SUBST(PYTHON_INCLUDES) +dnl check if the headers exist: +save_CPPFLAGS="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES" +AC_TRY_CPP([#include ],dnl +[AC_MSG_RESULT(found) +$1],dnl +[AC_MSG_RESULT(not found) +$2]) +CPPFLAGS="$save_CPPFLAGS" +]) + +dnl +dnl JH_ADD_CFLAG(FLAG) +dnl checks whether the C compiler supports the given flag, and if so, adds +dnl it to $CFLAGS. If the flag is already present in the list, then the +dnl check is not performed. +AC_DEFUN([JH_ADD_CFLAG], +[ +case " $CFLAGS " in +*@<:@\ \ @:>@$1@<:@\ \ @:>@*) + ;; +*) + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $1" + AC_MSG_CHECKING([whether [$]CC understands $1]) + AC_TRY_COMPILE([], [], [jh_has_option=yes], [jh_has_option=no]) + AC_MSG_RESULT($jh_has_option) + if test $jh_has_option = no; then + CFLAGS="$save_CFLAGS" + fi + ;; +esac]) diff --git a/meta/recipes-devtools/python/python-pygtk/fix-gtkunixprint.patch b/meta/recipes-devtools/python/python-pygtk/fix-gtkunixprint.patch new file mode 100644 index 0000000..dca19ce --- /dev/null +++ b/meta/recipes-devtools/python/python-pygtk/fix-gtkunixprint.patch @@ -0,0 +1,16 @@ +Index: pygtk-2.10.0/gtk/gtkunixprint.override +=================================================================== +--- pygtk-2.10.0.orig/gtk/gtkunixprint.override ++++ pygtk-2.10.0/gtk/gtkunixprint.override +@@ -105,11 +105,7 @@ _wrap_gtk_print_job_get_surface(PyGObjec + if (pyg_error_check(&error)) + return NULL; + +-#if PYCAIRO_VERSION_HEX >= 0x1010600 + return PycairoSurface_FromSurface(surface, NULL); +-#else +- return PycairoSurface_FromSurface(surface, NULL, NULL); +-#endif + } + %% + override gtk_print_job_send kwargs diff --git a/meta/recipes-devtools/python/python-pygtk/nodocs.patch b/meta/recipes-devtools/python/python-pygtk/nodocs.patch new file mode 100644 index 0000000..c358104 --- /dev/null +++ b/meta/recipes-devtools/python/python-pygtk/nodocs.patch @@ -0,0 +1,13 @@ +Index: pygtk-2.17.0/Makefile.am +=================================================================== +--- pygtk-2.17.0.orig/Makefile.am ++++ pygtk-2.17.0/Makefile.am +@@ -4,7 +4,7 @@ if BUILD_GTK + GTK_SUBDIR = gtk + endif + +-SUBDIRS = . $(GTK_SUBDIR) examples tests docs ++SUBDIRS = . $(GTK_SUBDIR) examples tests + + PLATFORM_VERSION = 2.0 + diff --git a/meta/recipes-devtools/python/python-pygtk/prevent_to_get_display_during_import.patch b/meta/recipes-devtools/python/python-pygtk/prevent_to_get_display_during_import.patch new file mode 100644 index 0000000..9340f82 --- /dev/null +++ b/meta/recipes-devtools/python/python-pygtk/prevent_to_get_display_during_import.patch @@ -0,0 +1,14 @@ +Index: pygtk-2.10.4/gtk/__init__.py +=================================================================== +--- pygtk-2.10.4.orig/gtk/__init__.py 2007-11-27 19:27:05.000000000 -0300 ++++ pygtk-2.10.4/gtk/__init__.py 2007-11-27 19:28:22.000000000 -0300 +@@ -78,7 +78,8 @@ + + keysyms = LazyModule('keysyms', locals()) + +-_init() ++if not hasattr(sys.modules['__main__'], 'python_launcher_enabled'): ++ _init() + + # CAPI + _PyGtk_API = _gtk._PyGtk_API diff --git a/meta/recipes-devtools/python/python-pygtk/python-pygtk2/acinclude.m4 b/meta/recipes-devtools/python/python-pygtk/python-pygtk2/acinclude.m4 new file mode 100644 index 0000000..53518fb --- /dev/null +++ b/meta/recipes-devtools/python/python-pygtk/python-pygtk2/acinclude.m4 @@ -0,0 +1,90 @@ +## this one is commonly used with AM_PATH_PYTHONDIR ... +dnl AM_CHECK_PYMOD(MODNAME [,SYMBOL [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]]) +dnl Check if a module containing a given symbol is visible to python. +AC_DEFUN(AM_CHECK_PYMOD, +[AC_REQUIRE([AM_PATH_PYTHON]) +py_mod_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'` +AC_MSG_CHECKING(for ifelse([$2],[],,[$2 in ])python module $1) +AC_CACHE_VAL(py_cv_mod_$py_mod_var, [ +ifelse([$2],[], [prog=" +import sys +try: + import $1 +except ImportError: + sys.exit(1) +except: + sys.exit(0) +sys.exit(0)"], [prog=" +import $1 +$1.$2"]) +if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC + then + eval "py_cv_mod_$py_mod_var=yes" + else + eval "py_cv_mod_$py_mod_var=no" + fi +]) +py_val=`eval "echo \`echo '$py_cv_mod_'$py_mod_var\`"` +if test "x$py_val" != xno; then + AC_MSG_RESULT(yes) + ifelse([$3], [],, [$3 +])dnl +else + AC_MSG_RESULT(no) + ifelse([$4], [],, [$4 +])dnl +fi +]) + +dnl a macro to check for ability to create python extensions +dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE]) +dnl function also defines PYTHON_INCLUDES +AC_DEFUN([AM_CHECK_PYTHON_HEADERS], +[AC_REQUIRE([AM_PATH_PYTHON]) +AC_MSG_CHECKING(for headers required to compile python extensions) +dnl deduce PYTHON_INCLUDES +AC_ARG_WITH(python-includes, + [ --with-python-includes=DIR path to Python includes], py_exec_prefix=$withval) +if test x$py_exec_prefix != x; then +PYTHON_INCLUDES="-I${py_exec_prefix}/include/python${PYTHON_VERSION}" +else +py_prefix=`$PYTHON -c "import sys; print sys.prefix"` +py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"` +PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}" +if test "$py_prefix" != "$py_exec_prefix"; then + PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}" +fi +fi +AC_SUBST(PYTHON_INCLUDES) +dnl check if the headers exist: +save_CPPFLAGS="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES" +AC_TRY_CPP([#include ],dnl +[AC_MSG_RESULT(found) +$1],dnl +[AC_MSG_RESULT(not found) +$2]) +CPPFLAGS="$save_CPPFLAGS" +]) + +dnl +dnl JH_ADD_CFLAG(FLAG) +dnl checks whether the C compiler supports the given flag, and if so, adds +dnl it to $CFLAGS. If the flag is already present in the list, then the +dnl check is not performed. +AC_DEFUN([JH_ADD_CFLAG], +[ +case " $CFLAGS " in +*@<:@\ \ @:>@$1@<:@\ \ @:>@*) + ;; +*) + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $1" + AC_MSG_CHECKING([whether [$]CC understands $1]) + AC_TRY_COMPILE([], [], [jh_has_option=yes], [jh_has_option=no]) + AC_MSG_RESULT($jh_has_option) + if test $jh_has_option = no; then + CFLAGS="$save_CFLAGS" + fi + ;; +esac]) diff --git a/meta/recipes-devtools/python/python-pygtk_2.17.0.bb b/meta/recipes-devtools/python/python-pygtk_2.17.0.bb new file mode 100644 index 0000000..ef63b51 --- /dev/null +++ b/meta/recipes-devtools/python/python-pygtk_2.17.0.bb @@ -0,0 +1,42 @@ +DESCRIPTION = "Python GTK+ 2.17.x Bindings" +SECTION = "devel/python" +# needs gtk+ 2.17.x +DEPENDS = "gtk+ libglade python-pycairo python-pygobject" +RDEPENDS = "python-shell python-pycairo python-pygobject" +PROVIDES = "python-pygtk2" +SRCNAME = "pygtk" +LICENSE = "LGPL" +PR = "ml8.2" + +SRC_URI = "ftp://ftp.gnome.org/pub/gnome/sources/pygtk/2.17/${SRCNAME}-${PV}.tar.bz2 \ + file://fix-gtkunixprint.patch \ + file://prevent_to_get_display_during_import.patch \ + file://nodocs.patch \ + file://acinclude.m4" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +EXTRA_OECONF = "--disable-docs --with-python-includes=${STAGING_INCDIR}/../" + +inherit autotools pkgconfig distutils-base + +do_configure_prepend() { + install -m 0644 ${WORKDIR}/acinclude.m4 ${S}/ +} + +# dirty fix #1: remove dependency on python-pygobject-dev +do_install_append() { + find ${D} -name "*.la"|xargs rm -f + rm -f ${D}/${bindir}/pygtk-codegen-2.0 + rm -rf ${D}/${libdir}/pkgconfig +} + +# dirty fix #2: fix build system paths leaking in +require fix-path.inc + +PACKAGES =+ "${PN}-demo" +FILES_${PN}-demo = " ${bindir}/pygtk-demo ${libdir}/pygtk " +RDEPENDS_${PN}-demo = "python-pygtk python-stringold python-lang" + +# todo: revamp packaging, package demo seperatly +FILES_${PN}-dev += " ${libdir}/pygtk/2.0 ${bindir}/pygtk-* ${datadir}/pygtk/2.0" + diff --git a/meta/recipes-devtools/python/python-pyrex-native_0.9.9.bb b/meta/recipes-devtools/python/python-pyrex-native_0.9.9.bb new file mode 100644 index 0000000..90b6b16 --- /dev/null +++ b/meta/recipes-devtools/python/python-pyrex-native_0.9.9.bb @@ -0,0 +1,5 @@ +require python-pyrex_${PV}.bb +inherit native +DEPENDS = "python-native" +RDEPENDS = "" +PR = "r0" diff --git a/meta/recipes-devtools/python/python-pyrex/pyrex-fix-optimized-mode.patch b/meta/recipes-devtools/python/python-pyrex/pyrex-fix-optimized-mode.patch new file mode 100644 index 0000000..a1f5bb2 --- /dev/null +++ b/meta/recipes-devtools/python/python-pyrex/pyrex-fix-optimized-mode.patch @@ -0,0 +1,13 @@ +Index: Pyrex-0.9.8.4/Pyrex/Distutils/extension.py +=================================================================== +--- Pyrex-0.9.8.4.orig/Pyrex/Distutils/extension.py ++++ Pyrex-0.9.8.4/Pyrex/Distutils/extension.py +@@ -15,7 +15,7 @@ except ImportError: + warnings = None + + class Extension(_Extension.Extension): +- _Extension.Extension.__doc__ + \ ++ _Extension.Extension.__doc__ or "" + \ + """pyrex_include_dirs : [string] + list of directories to search for Pyrex header files (.pxd) (in + Unix form for portability) diff --git a/meta/recipes-devtools/python/python-pyrex_0.9.9.bb b/meta/recipes-devtools/python/python-pyrex_0.9.9.bb new file mode 100644 index 0000000..6c57af5 --- /dev/null +++ b/meta/recipes-devtools/python/python-pyrex_0.9.9.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "Pyrex is a language specially designed for writing Python extension modules. \ +It's designed to bridge the gap between the nice, high-level, easy-to-use world of Python \ +and the messy, low-level world of C." +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +SRCNAME = "Pyrex" +PR = "ml0" + +SRC_URI = "\ + http://www.cosc.canterbury.ac.nz/greg.ewing/python/${SRCNAME}/${SRCNAME}-${PV}.tar.gz \ + file://pyrex-fix-optimized-mode.patch \ +" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/meta/recipes-devtools/python/python-scons-native_1.3.0.bb b/meta/recipes-devtools/python/python-scons-native_1.3.0.bb new file mode 100644 index 0000000..a4bcd42 --- /dev/null +++ b/meta/recipes-devtools/python/python-scons-native_1.3.0.bb @@ -0,0 +1,6 @@ +require python-scons_${PV}.bb +inherit native +DEPENDS = "python-native" +RDEPENDS = "" +PR = "r0" + diff --git a/meta/recipes-devtools/python/python-scons_1.3.0.bb b/meta/recipes-devtools/python/python-scons_1.3.0.bb new file mode 100644 index 0000000..f5d11eb --- /dev/null +++ b/meta/recipes-devtools/python/python-scons_1.3.0.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "A Software Construction Tool" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +SRCNAME = "scons" + +PR = "r0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/scons/scons-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/meta/recipes-devtools/python/python-urlgrabber-native_3.9.1.bb b/meta/recipes-devtools/python/python-urlgrabber-native_3.9.1.bb new file mode 100644 index 0000000..ff8f02e --- /dev/null +++ b/meta/recipes-devtools/python/python-urlgrabber-native_3.9.1.bb @@ -0,0 +1,4 @@ +require python-urlgrabber_${PV}.bb +inherit native +DEPENDS = "python-native python-pycurl-native" +RDEPENDS = "" diff --git a/meta/recipes-devtools/python/python-urlgrabber/urlgrabber-3.0.0-cleanup.patch b/meta/recipes-devtools/python/python-urlgrabber/urlgrabber-3.0.0-cleanup.patch new file mode 100644 index 0000000..7a1ee05 --- /dev/null +++ b/meta/recipes-devtools/python/python-urlgrabber/urlgrabber-3.0.0-cleanup.patch @@ -0,0 +1,28 @@ +diff -up urlgrabber-3.0.0/urlgrabber/grabber.py.cleanup urlgrabber-3.0.0/urlgrabber/grabber.py +--- urlgrabber-3.0.0/urlgrabber/grabber.py.cleanup 2007-11-29 10:25:13.000000000 +0000 ++++ urlgrabber-3.0.0/urlgrabber/grabber.py 2007-11-29 10:26:15.000000000 +0000 +@@ -1204,16 +1204,18 @@ class URLGrabberFileObject: + bs = 1024*8 + size = 0 + +- if amount is not None: bs = min(bs, amount - size) +- block = self.read(bs) +- size = size + len(block) +- while block: +- new_fo.write(block) ++ try: + if amount is not None: bs = min(bs, amount - size) + block = self.read(bs) + size = size + len(block) ++ while block: ++ new_fo.write(block) ++ if amount is not None: bs = min(bs, amount - size) ++ block = self.read(bs) ++ size = size + len(block) ++ finally: ++ new_fo.close() + +- new_fo.close() + try: + modified_tuple = self.hdr.getdate_tz('last-modified') + modified_stamp = rfc822.mktime_tz(modified_tuple) diff --git a/meta/recipes-devtools/python/python-urlgrabber/urlgrabber-HEAD.patch b/meta/recipes-devtools/python/python-urlgrabber/urlgrabber-HEAD.patch new file mode 100644 index 0000000..90180d2 --- /dev/null +++ b/meta/recipes-devtools/python/python-urlgrabber/urlgrabber-HEAD.patch @@ -0,0 +1,142 @@ +diff --git a/urlgrabber/grabber.py b/urlgrabber/grabber.py +index e090e90..a26880c 100644 +--- a/urlgrabber/grabber.py ++++ b/urlgrabber/grabber.py +@@ -439,6 +439,12 @@ try: + except: + __version__ = '???' + ++try: ++ # this part isn't going to do much - need to talk to gettext ++ from i18n import _ ++except ImportError, msg: ++ def _(st): return st ++ + ######################################################################## + # functions for debugging output. These functions are here because they + # are also part of the module initialization. +@@ -1052,7 +1058,8 @@ class PyCurlFileObject(): + self._reget_length = 0 + self._prog_running = False + self._error = (None, None) +- self.size = None ++ self.size = 0 ++ self._hdr_ended = False + self._do_open() + + +@@ -1085,9 +1092,14 @@ class PyCurlFileObject(): + return -1 + + def _hdr_retrieve(self, buf): ++ if self._hdr_ended: ++ self._hdr_dump = '' ++ self.size = 0 ++ self._hdr_ended = False ++ + if self._over_max_size(cur=len(self._hdr_dump), + max_size=self.opts.max_header_size): +- return -1 ++ return -1 + try: + self._hdr_dump += buf + # we have to get the size before we do the progress obj start +@@ -1104,7 +1116,17 @@ class PyCurlFileObject(): + s = parse150(buf) + if s: + self.size = int(s) +- ++ ++ if buf.lower().find('location') != -1: ++ location = ':'.join(buf.split(':')[1:]) ++ location = location.strip() ++ self.scheme = urlparse.urlsplit(location)[0] ++ self.url = location ++ ++ if len(self._hdr_dump) != 0 and buf == '\r\n': ++ self._hdr_ended = True ++ if DEBUG: DEBUG.info('header ended:') ++ + return len(buf) + except KeyboardInterrupt: + return pycurl.READFUNC_ABORT +@@ -1136,6 +1158,7 @@ class PyCurlFileObject(): + self.curl_obj.setopt(pycurl.PROGRESSFUNCTION, self._progress_update) + self.curl_obj.setopt(pycurl.FAILONERROR, True) + self.curl_obj.setopt(pycurl.OPT_FILETIME, True) ++ self.curl_obj.setopt(pycurl.FOLLOWLOCATION, True) + + if DEBUG: + self.curl_obj.setopt(pycurl.VERBOSE, True) +@@ -1291,7 +1314,12 @@ class PyCurlFileObject(): + raise err + + elif str(e.args[1]) == '' and self.http_code != 0: # fake it until you make it +- msg = 'HTTP Error %s : %s ' % (self.http_code, self.url) ++ if self.scheme in ['http', 'https']: ++ msg = 'HTTP Error %s : %s ' % (self.http_code, self.url) ++ elif self.scheme in ['ftp']: ++ msg = 'FTP Error %s : %s ' % (self.http_code, self.url) ++ else: ++ msg = "Unknown Error: URL=%s , scheme=%s" % (self.url, self.scheme) + else: + msg = 'PYCURL ERROR %s - "%s"' % (errcode, str(e.args[1])) + code = errcode +@@ -1299,6 +1327,12 @@ class PyCurlFileObject(): + err.code = code + err.exception = e + raise err ++ else: ++ if self._error[1]: ++ msg = self._error[1] ++ err = URLGRabError(14, msg) ++ err.url = self.url ++ raise err + + def _do_open(self): + self.curl_obj = _curl_cache +@@ -1532,11 +1566,14 @@ class PyCurlFileObject(): + def _over_max_size(self, cur, max_size=None): + + if not max_size: +- max_size = self.size +- if self.opts.size: # if we set an opts size use that, no matter what +- max_size = self.opts.size ++ if not self.opts.size: ++ max_size = self.size ++ else: ++ max_size = self.opts.size ++ + if not max_size: return False # if we have None for all of the Max then this is dumb +- if cur > max_size + max_size*.10: ++ ++ if cur > int(float(max_size) * 1.10): + + msg = _("Downloaded more than max size for %s: %s > %s") \ + % (self.url, cur, max_size) +@@ -1582,7 +1619,11 @@ class PyCurlFileObject(): + self.opts.progress_obj.end(self._amount_read) + self.fo.close() + +- ++ def geturl(self): ++ """ Provide the geturl() method, used to be got from ++ urllib.addinfourl, via. urllib.URLopener.* """ ++ return self.url ++ + _curl_cache = pycurl.Curl() # make one and reuse it over and over and over + + +diff --git a/urlgrabber/progress.py b/urlgrabber/progress.py +index dd07c6a..45eb248 100644 +--- a/urlgrabber/progress.py ++++ b/urlgrabber/progress.py +@@ -658,6 +658,8 @@ def format_time(seconds, use_hours=0): + if seconds is None or seconds < 0: + if use_hours: return '--:--:--' + else: return '--:--' ++ elif seconds == float('inf'): ++ return 'Infinite' + else: + seconds = int(seconds) + minutes = seconds / 60 diff --git a/meta/recipes-devtools/python/python-urlgrabber/urlgrabber-reset.patch b/meta/recipes-devtools/python/python-urlgrabber/urlgrabber-reset.patch new file mode 100644 index 0000000..b63e7c3 --- /dev/null +++ b/meta/recipes-devtools/python/python-urlgrabber/urlgrabber-reset.patch @@ -0,0 +1,15 @@ +--- a/urlgrabber/grabber.py 2010-02-19 14:50:45.000000000 -0500 ++++ b/urlgrabber/grabber.py 2010-02-19 14:51:28.000000000 -0500 +@@ -1626,6 +1626,12 @@ + + _curl_cache = pycurl.Curl() # make one and reuse it over and over and over + ++def reset_curl_obj(): ++ """To make sure curl has reread the network/dns info we force a reload""" ++ global _curl_cache ++ _curl_cache.close() ++ _curl_cache = pycurl.Curl() ++ + + ##################################################################### + # DEPRECATED FUNCTIONS diff --git a/meta/recipes-devtools/python/python-urlgrabber_3.9.1.bb b/meta/recipes-devtools/python/python-urlgrabber_3.9.1.bb new file mode 100644 index 0000000..9f3a4cc --- /dev/null +++ b/meta/recipes-devtools/python/python-urlgrabber_3.9.1.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "urlgrabber is a pure python package that drastically simplifies the fetching of files." + +HOMEPAGE = "http://urlgrabber.baseurl.org/" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +PR = "r1" + +SRC_URI = "http://urlgrabber.baseurl.org/download/urlgrabber-${PV}.tar.gz \ + file://urlgrabber-HEAD.patch;patch=1 \ + file://urlgrabber-reset.patch;patch=1" +S = "${WORKDIR}/urlgrabber-${PV}" + +DEPENDS = "python-pycurl" + +inherit distutils \ No newline at end of file diff --git a/meta/recipes-devtools/python/python.inc b/meta/recipes-devtools/python/python.inc new file mode 100644 index 0000000..682bd5a --- /dev/null +++ b/meta/recipes-devtools/python/python.inc @@ -0,0 +1,25 @@ +DESCRIPTION = "The Python Programming Language" +HOMEPAGE = "http://www.python.org" +LICENSE = "PSF" +SECTION = "devel/python" +PRIORITY = "optional" +# bump this on every change in contrib/python/generate-manifest-2.6.py +INC_PR = "ml8" + +DEFAULT_PREFERENCE = "-26" + +PYTHON_MAJMIN = "2.6" + +inherit autotools + +EXTRA_OECONF = "\ + --with-threads \ + --with-pymalloc \ + --with-cyclic-gc \ + --without-cxx \ + --with-signal-module \ + --with-wctype-functions \ + --enable-shared \ +" + +PARALLEL_MAKE = "" diff --git a/meta/recipes-devtools/python/python/00-fix-bindir-libdir-for-cross.patch b/meta/recipes-devtools/python/python/00-fix-bindir-libdir-for-cross.patch new file mode 100644 index 0000000..2559e3a --- /dev/null +++ b/meta/recipes-devtools/python/python/00-fix-bindir-libdir-for-cross.patch @@ -0,0 +1,20 @@ +# $(exec_prefix) points to the wrong directory, when installing +# a cross-build. @bindir@ and @libdir@ works better and doesn't +# affect the native build. +# Signed-Off: Michael 'Mickey' Lauer + +Index: Python-2.6.1/Makefile.pre.in +=================================================================== +--- Python-2.6.1.orig/Makefile.pre.in ++++ Python-2.6.1/Makefile.pre.in +@@ -86,8 +86,8 @@ exec_prefix= @exec_prefix@ + datarootdir= @datarootdir@ + + # Expanded directories +-BINDIR= $(exec_prefix)/bin +-LIBDIR= $(exec_prefix)/lib ++BINDIR= @bindir@ ++LIBDIR= @libdir@ + MANDIR= @mandir@ + INCLUDEDIR= @includedir@ + CONFINCLUDEDIR= $(exec_prefix)/include diff --git a/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch b/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch new file mode 100644 index 0000000..e89faa4 --- /dev/null +++ b/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch @@ -0,0 +1,116 @@ +# We need to ensure our host tools get run during build, not the freshly +# built cross-tools (this will not work), so we introduce HOSTPYTHON and HOSTPGEN. +# Signed-Off: Michael 'Mickey' Lauer + +Index: Python-2.6.1/Makefile.pre.in +=================================================================== +--- Python-2.6.1.orig/Makefile.pre.in ++++ Python-2.6.1/Makefile.pre.in +@@ -175,6 +175,7 @@ UNICODE_OBJS= @UNICODE_OBJS@ + + PYTHON= python$(EXE) + BUILDPYTHON= python$(BUILDEXE) ++HOSTPYTHON= $(BUILDPYTHON) + + # The task to run while instrument when building the profile-opt target + PROFILE_TASK= $(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck +@@ -205,7 +206,7 @@ GRAMMAR_INPUT= $(srcdir)/Grammar/Grammar + ########################################################################## + # Parser + PGEN= Parser/pgen$(EXE) +- ++HOSTPGEN= $(PGEN)$(EXE) + POBJS= \ + Parser/acceler.o \ + Parser/grammar1.o \ +@@ -394,8 +395,8 @@ platform: $(BUILDPYTHON) + # Build the shared modules + sharedmods: $(BUILDPYTHON) + @case $$MAKEFLAGS in \ +- *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \ +- *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \ ++ *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py -q build;; \ ++ *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py build;; \ + esac + + # Build static library +@@ -513,7 +514,7 @@ Modules/python.o: $(srcdir)/Modules/pyth + + $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT) + -@$(INSTALL) -d Include +- -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) ++ -$(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) + + $(PGEN): $(PGENOBJS) + $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN) +@@ -879,23 +880,23 @@ libinstall: build_all $(srcdir)/Lib/$(PL + done + $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt + PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ ++ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST) -f \ + -x 'bad_coding|badsyntax|site-packages' $(DESTDIR)$(LIBDEST) + PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ ++ $(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST) -f \ + -x 'bad_coding|badsyntax|site-packages' $(DESTDIR)$(LIBDEST) + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ ++ $(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST)/site-packages -f \ + -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- ./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \ ++ $(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST)/site-packages -f \ + -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- ./$(BUILDPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()" ++ $(HOSTPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()" + + # Create the PLATDIR source directory, if one wasn't distributed.. + $(srcdir)/Lib/$(PLATDIR): +@@ -993,7 +994,7 @@ libainstall: all + # Install the dynamically loadable modules + # This goes into $(exec_prefix) + sharedinstall: +- $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \ ++ $(RUNSHARED) $(HOSTPYTHON) -E $(srcdir)/setup.py install \ + --prefix=$(prefix) \ + --install-scripts=$(BINDIR) \ + --install-platlib=$(DESTSHARED) \ +Index: Python-2.6.1/setup.py +=================================================================== +--- Python-2.6.1.orig/setup.py ++++ Python-2.6.1/setup.py +@@ -276,6 +276,7 @@ class PyBuildExt(build_ext): + self.failed.append(ext.name) + self.announce('*** WARNING: renaming "%s" since importing it' + ' failed: %s' % (ext.name, why), level=3) ++ return + assert not self.inplace + basename, tail = os.path.splitext(ext_filename) + newname = basename + "_failed" + tail +@@ -310,8 +311,8 @@ class PyBuildExt(build_ext): + + def detect_modules(self): + # Ensure that /usr/local is always used +- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') +- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') ++ # add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') ++ # add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') + + # Add paths specified in the environment variables LDFLAGS and + # CPPFLAGS for header and library files. +@@ -410,6 +411,9 @@ class PyBuildExt(build_ext): + + # XXX Omitted modules: gl, pure, dl, SGI-specific modules + ++ lib_dirs = [ os.getenv( "STAGING_LIBDIR" ) ] ++ inc_dirs = [ os.getenv( "STAGING_INCDIR" ) ] ++ + # + # The following modules are all pretty straightforward, and compile + # on pretty much any POSIXish platform. diff --git a/meta/recipes-devtools/python/python/02-remove-test-for-cross.patch b/meta/recipes-devtools/python/python/02-remove-test-for-cross.patch new file mode 100644 index 0000000..b1c0bfb --- /dev/null +++ b/meta/recipes-devtools/python/python/02-remove-test-for-cross.patch @@ -0,0 +1,106 @@ +# 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/03-fix-tkinter-detection.patch b/meta/recipes-devtools/python/python/03-fix-tkinter-detection.patch new file mode 100644 index 0000000..a1a385a --- /dev/null +++ b/meta/recipes-devtools/python/python/03-fix-tkinter-detection.patch @@ -0,0 +1,40 @@ +# We need to supply STAGING_INCDIR here, otherwise the Tk headers +# will not be found. +# Signed-Off: Michael 'Mickey' Lauer + +Index: Python-2.6.1/setup.py +=================================================================== +--- Python-2.6.1.orig/setup.py ++++ Python-2.6.1/setup.py +@@ -1543,7 +1543,7 @@ class PyBuildExt(build_ext): + dotversion = dotversion[:-1] + '.' + dotversion[-1] + tcl_include_sub = [] + tk_include_sub = [] +- for dir in inc_dirs: ++ for dir in [os.getenv("STAGING_INCDIR")]: + tcl_include_sub += [dir + os.sep + "tcl" + dotversion] + tk_include_sub += [dir + os.sep + "tk" + dotversion] + tk_include_sub += tcl_include_sub +@@ -1562,22 +1562,6 @@ class PyBuildExt(build_ext): + if dir not in include_dirs: + include_dirs.append(dir) + +- # Check for various platform-specific directories +- if platform == 'sunos5': +- include_dirs.append('/usr/openwin/include') +- added_lib_dirs.append('/usr/openwin/lib') +- elif os.path.exists('/usr/X11R6/include'): +- include_dirs.append('/usr/X11R6/include') +- added_lib_dirs.append('/usr/X11R6/lib64') +- added_lib_dirs.append('/usr/X11R6/lib') +- elif os.path.exists('/usr/X11R5/include'): +- include_dirs.append('/usr/X11R5/include') +- added_lib_dirs.append('/usr/X11R5/lib') +- else: +- # Assume default location for X11 +- include_dirs.append('/usr/X11/include') +- added_lib_dirs.append('/usr/X11/lib') +- + # If Cygwin, then verify that X is installed before proceeding + if platform == 'cygwin': + x11_inc = find_file('X11/Xlib.h', [], include_dirs) diff --git a/meta/recipes-devtools/python/python/04-default-is-optimized.patch b/meta/recipes-devtools/python/python/04-default-is-optimized.patch new file mode 100644 index 0000000..805f4f6 --- /dev/null +++ b/meta/recipes-devtools/python/python/04-default-is-optimized.patch @@ -0,0 +1,52 @@ +# when compiling for an embedded system, we need every bit of +# performance we can get. default to optimized with the option +# of opt-out. +# Signed-Off: Michael 'Mickey' Lauer + +Index: Python-2.6.1/Python/compile.c +=================================================================== +--- Python-2.6.1.orig/Python/compile.c ++++ Python-2.6.1/Python/compile.c +@@ -32,7 +32,7 @@ + #include "symtable.h" + #include "opcode.h" + +-int Py_OptimizeFlag = 0; ++int Py_OptimizeFlag = 1; + + #define DEFAULT_BLOCK_SIZE 16 + #define DEFAULT_BLOCKS 8 +Index: Python-2.6.1/Modules/main.c +=================================================================== +--- Python-2.6.1.orig/Modules/main.c ++++ Python-2.6.1/Modules/main.c +@@ -40,7 +40,7 @@ static char **orig_argv; + static int orig_argc; + + /* command line options */ +-#define BASE_OPTS "3bBc:dEhiJm:OQ:sStuUvVW:xX?" ++#define BASE_OPTS "3bBc:dEhiJm:NOQ:sStuUvVW:xX?" + + #ifndef RISCOS + #define PROGRAM_OPTS BASE_OPTS +@@ -69,8 +69,7 @@ Options and arguments (and corresponding + static char *usage_2 = "\ + if stdin does not appear to be a terminal; also PYTHONINSPECT=x\n\ + -m mod : run library module as a script (terminates option list)\n\ +--O : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x\n\ +--OO : remove doc-strings in addition to the -O optimizations\n\ ++-N : do NOT optimize generated bytecode\n\ + -Q arg : division options: -Qold (default), -Qwarn, -Qwarnall, -Qnew\n\ + -s : don't add user site directory to sys.path; also PYTHONNOUSERSITE\n\ + -S : don't imply 'import site' on initialization\n\ +@@ -353,8 +352,8 @@ Py_Main(int argc, char **argv) + + /* case 'J': reserved for Jython */ + +- case 'O': +- Py_OptimizeFlag++; ++ case 'N': ++ Py_OptimizeFlag=0; + break; + + case 'B': diff --git a/meta/recipes-devtools/python/python/05-enable-ctypes-cross-build.patch b/meta/recipes-devtools/python/python/05-enable-ctypes-cross-build.patch new file mode 100644 index 0000000..58b8078 --- /dev/null +++ b/meta/recipes-devtools/python/python/05-enable-ctypes-cross-build.patch @@ -0,0 +1,28 @@ +# CTypes need to know the actual host we are building on. +# Signed-Off: Michael Dietrich + +Index: Python-2.6.1/setup.py +=================================================================== +--- Python-2.6.1.orig/setup.py ++++ Python-2.6.1/setup.py +@@ -1656,16 +1656,16 @@ class PyBuildExt(build_ext): + ffi_configfile): + from distutils.dir_util import mkpath + mkpath(ffi_builddir) +- config_args = [] ++ config_args = ['--host=%s' % os.environ["HOST_SYS"], ] + + # Pass empty CFLAGS because we'll just append the resulting + # CFLAGS to Python's; -g or -O2 is to be avoided. +- cmd = "cd %s && env CFLAGS='' '%s/configure' %s" \ +- % (ffi_builddir, ffi_srcdir, " ".join(config_args)) ++ cmd = "(cd %s && autoconf -W cross) && (cd %s && env CFLAGS='' '%s/configure' %s)" \ ++ % (ffi_srcdir, ffi_builddir, ffi_srcdir, " ".join(config_args)) + + res = os.system(cmd) + if res or not os.path.exists(ffi_configfile): +- print "Failed to configure _ctypes module" ++ print "Failed to configure _ctypes module (res=%d) or missing conffile=%s" % ( res, ffi_configfile ) + return False + + fficonfig = {} diff --git a/meta/recipes-devtools/python/python/99-ignore-optimization-flag.patch b/meta/recipes-devtools/python/python/99-ignore-optimization-flag.patch new file mode 100644 index 0000000..02dc44c --- /dev/null +++ b/meta/recipes-devtools/python/python/99-ignore-optimization-flag.patch @@ -0,0 +1,19 @@ +# Reinstate the empty -O option to fix weird mixing of native and target +# binaries and libraries with LD_LIBRARY_PATH when host==target +# +# Signed-off-by: Denys Dmytriyenko + +Index: Python-2.6.1/Modules/main.c +=================================================================== +--- Python-2.6.1-orig/Modules/main.c ++++ Python-2.6.1/Modules/main.c +@@ -352,6 +352,9 @@ Py_Main(int argc, char **argv) + + /* case 'J': reserved for Jython */ + ++ case 'O': /* ignore it */ ++ break; ++ + case 'N': + Py_OptimizeFlag=0; + break; diff --git a/meta/recipes-devtools/python/python/sitecustomize.py b/meta/recipes-devtools/python/python/sitecustomize.py new file mode 100644 index 0000000..2739018 --- /dev/null +++ b/meta/recipes-devtools/python/python/sitecustomize.py @@ -0,0 +1,45 @@ +# OpenEmbedded sitecustomize.py (C) 2002-2008 Michael 'Mickey' Lauer +# GPLv2 or later +# Version: 20081123 +# Features: +# * set proper default encoding +# * enable readline completion in the interactive interpreter +# * load command line history on startup +# * save command line history on exit + +import os + +def __exithandler(): + try: + readline.write_history_file( "%s/.python-history" % os.getenv( "HOME", "/tmp" ) ) + except IOError: + pass + +def __registerExitHandler(): + import atexit + atexit.register( __exithandler ) + +def __enableReadlineSupport(): + readline.set_history_length( 1000 ) + readline.parse_and_bind( "tab: complete" ) + try: + readline.read_history_file( "%s/.python-history" % os.getenv( "HOME", "/tmp" ) ) + except IOError: + pass + +def __enableDefaultEncoding(): + import sys + try: + sys.setdefaultencoding( "utf8" ) + except LookupError: + pass + +import sys +try: + import rlcompleter, readline +except ImportError: + pass +else: + __enableDefaultEncoding() + __registerExitHandler() + __enableReadlineSupport() diff --git a/meta/recipes-devtools/python/python_2.6.5.bb b/meta/recipes-devtools/python/python_2.6.5.bb new file mode 100644 index 0000000..9658fd4 --- /dev/null +++ b/meta/recipes-devtools/python/python_2.6.5.bb @@ -0,0 +1,121 @@ +require python.inc +DEPENDS = "python-native db gdbm openssl readline sqlite3 zlib" +DEPENDS_sharprom = "python-native db readline zlib gdbm openssl" +# set to .0 on every increase of INC_PR +PR = "${INC_PR}.2" + +SRC_URI = "\ + http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2 \ + file://00-fix-bindir-libdir-for-cross.patch \ + file://01-use-proper-tools-for-cross-build.patch \ + file://02-remove-test-for-cross.patch \ + file://03-fix-tkinter-detection.patch \ + file://04-default-is-optimized.patch \ + file://05-enable-ctypes-cross-build.patch \ + file://99-ignore-optimization-flag.patch \ + file://sitecustomize.py \ +" +S = "${WORKDIR}/Python-${PV}" + +inherit autotools + +# The 3 lines below are copied from the libffi recipe, ctypes ships its own copy of the libffi sources +#Somehow gcc doesn't set __SOFTFP__ when passing -mfloatabi=softp :( +TARGET_CC_ARCH_append_armv6 = " -D__SOFTFP__" +TARGET_CC_ARCH_append_armv7a = " -D__SOFTFP__" + +do_configure_prepend() { + autoreconf -Wcross --verbose --install --force --exclude=autopoint Modules/_ctypes/libffi || oenote "_ctypes failed to autoreconf" +} + +# +# Copy config.h and an appropriate Makefile for distutils.sysconfig, +# which laters uses the information out of these to compile extensions +# +do_compile_prepend() { + install -d ${STAGING_INCDIR}/python${PYTHON_MAJMIN}/ + install -d ${STAGING_LIBDIR}/python${PYTHON_MAJMIN}/config/ + install -m 0644 pyconfig.h ${STAGING_INCDIR}/python${PYTHON_MAJMIN}/ + install -m 0644 Makefile Makefile.orig + install -m 0644 Makefile Makefile.backup + sed -e 's,${includedir},${STAGING_INCDIR},' < Makefile.backup > Makefile + install -m 0644 Makefile Makefile.backup + sed -e 's,${libdir},${STAGING_LIBDIR},' < Makefile.backup > Makefile + install -m 0644 Makefile ${STAGING_LIBDIR}/python${PYTHON_MAJMIN}/config/ +} + +do_compile() { + oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/pgen \ + HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python \ + STAGING_LIBDIR=${STAGING_LIBDIR} \ + STAGING_INCDIR=${STAGING_INCDIR} \ + BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ + OPT="${CFLAGS}" libpython${PYTHON_MAJMIN}.so + + oe_libinstall -so libpython${PYTHON_MAJMIN} ${STAGING_LIBDIR} + + oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/pgen \ + HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python \ + STAGING_LIBDIR=${STAGING_LIBDIR} \ + STAGING_INCDIR=${STAGING_INCDIR} \ + BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ + OPT="${CFLAGS}" +} + +do_install() { + install -m 0644 Makefile.orig Makefile + + oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/pgen \ + HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python \ + STAGING_LIBDIR=${STAGING_LIBDIR} \ + STAGING_INCDIR=${STAGING_INCDIR} \ + BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ + DESTDIR=${D} LIBDIR=${libdir} install + + install -m 0644 ${WORKDIR}/sitecustomize.py ${D}/${libdir}/python${PYTHON_MAJMIN} + + # remove hardcoded ccache, see http://bugs.openembedded.net/show_bug.cgi?id=4144 + sed -i -e s,ccache,'$(CCACHE)', ${D}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile +} + +require python-${PYTHON_MAJMIN}-manifest.inc + +# manual dependency additions +RPROVIDES_python-core = "python" +RRECOMMENDS_python-core = "python-readline" +RRECOMMENDS_python-crypt = "openssl" + +# add sitecustomize +FILES_python-core += "${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py" +# ship 2to3 +FILES_python-core += "${bindir}/2to3" + +# package libpython2 +PACKAGES =+ "libpython2" +FILES_libpython2 = "${libdir}/libpython*.so*" + +# additional stuff -dev + +FILES_${PN}-dev = "\ + ${includedir} \ + ${libdir}/lib*${SOLIBSDEV} \ + ${libdir}/*.la \ + ${libdir}/*.a \ + ${libdir}/*.o \ + ${libdir}/pkgconfig \ + ${base_libdir}/*.a \ + ${base_libdir}/*.o \ + ${datadir}/aclocal \ + ${datadir}/pkgconfig \ +" + +# catch debug extensions (isn't that already in python-core-dbg?) +FILES_python-dbg += "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/.debug" + +# catch all the rest (unsorted) +PACKAGES += "python-misc" +FILES_python-misc = "${libdir}/python${PYTHON_MAJMIN}" + +# catch manpage +PACKAGES += "python-man" +FILES_python-man = "${datadir}/man" diff --git a/meta/recipes-devtools/python/yum-metadata-parser-native_1.1.4.bb b/meta/recipes-devtools/python/yum-metadata-parser-native_1.1.4.bb new file mode 100644 index 0000000..0a44b99 --- /dev/null +++ b/meta/recipes-devtools/python/yum-metadata-parser-native_1.1.4.bb @@ -0,0 +1,7 @@ +require yum-metadata-parser_${PV}.bb +inherit native +DEPENDS = "python-native sqlite3-native glib-2.0-native libxml2-native" +RDEPENDS = "" +PR = "r0" + +#BUILD_CFLAGS += "-I${STAGING_LIBDIR}/glib-2.0" diff --git a/meta/recipes-devtools/python/yum-metadata-parser_1.1.4.bb b/meta/recipes-devtools/python/yum-metadata-parser_1.1.4.bb new file mode 100644 index 0000000..2e404a2 --- /dev/null +++ b/meta/recipes-devtools/python/yum-metadata-parser_1.1.4.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "C-based metadata parser to quickly parse xml metadata into sqlite databases." +HOMEPAGE = "http://linux.duke.edu/projects/yum/download.ptml" +SECTION = "devel/python" +PRIORITY = "optional" +DEPENDS = "python sqlite3 glib-2.0 libxml2" +LICENSE = "GPL" + +PR = "r1" + +SRC_URI = "http://linux.duke.edu/projects/yum/download/yum-metadata-parser/yum-metadata-parser-${PV}.tar.gz" +S = "${WORKDIR}/yum-metadata-parser-${PV}" + +TARGET_CFLAGS += "-I${STAGING_LIBDIR}/glib-2.0" + +inherit distutils -- cgit v1.1