diff options
Diffstat (limited to 'recipes/python')
209 files changed, 6016 insertions, 0 deletions
diff --git a/recipes/python/divmod.inc b/recipes/python/divmod.inc new file mode 100644 index 0000000000..20be1b2e38 --- /dev/null +++ b/recipes/python/divmod.inc @@ -0,0 +1,17 @@ +SRC_URI = "http://divmod.org/trac/attachment/wiki/SoftwareReleases/${REALPN}-${PV}.tar.gz?format=raw" + +DEPENDS += "python-twisted-native" + +do_unpack2() { + cd ${WORKDIR} + tar zxvf ${REALPN}-${PV}.tar.gz?format=raw +} + +addtask unpack2 after do_unpack before do_configure + +inherit distutils + +S = "${WORKDIR}/${REALPN}-${PV}" + + + diff --git a/recipes/python/files/06-libffi-enable-default-mips.patch b/recipes/python/files/06-libffi-enable-default-mips.patch new file mode 100644 index 0000000000..b01f0c751d --- /dev/null +++ b/recipes/python/files/06-libffi-enable-default-mips.patch @@ -0,0 +1,12 @@ +Index: Python-2.6.1/Modules/_ctypes/libffi/fficonfig.py.in +=================================================================== +--- Python-2.6.1.orig/Modules/_ctypes/libffi/fficonfig.py.in ++++ Python-2.6.1/Modules/_ctypes/libffi/fficonfig.py.in +@@ -5,6 +5,7 @@ src/prep_cif.c + ffi_platforms = { + 'MIPS_IRIX': ['src/mips/ffi.c', 'src/mips/o32.S', 'src/mips/n32.S'], + 'MIPS_LINUX': ['src/mips/ffi.c', 'src/mips/o32.S'], ++ 'MIPS': ['src/mips/ffi.c', 'src/mips/o32.S'], + 'X86': ['src/x86/ffi.c', 'src/x86/sysv.S'], + 'X86_FREEBSD': ['src/x86/ffi.c', 'src/x86/sysv.S'], + 'X86_WIN32': ['src/x86/ffi.c', 'src/x86/win32.S'], diff --git a/recipes/python/files/pyrex-fix-optimized-mode.patch b/recipes/python/files/pyrex-fix-optimized-mode.patch new file mode 100644 index 0000000000..a1f5bb29ba --- /dev/null +++ b/recipes/python/files/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/recipes/python/fix-path.inc b/recipes/python/fix-path.inc new file mode 100644 index 0000000000..0738c59ada --- /dev/null +++ b/recipes/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/recipes/python/python-2.6-manifest.inc b/recipes/python/python-2.6-manifest.inc new file mode 100644 index 0000000000..b8b8d1c27c --- /dev/null +++ b/recipes/python/python-2.6-manifest.inc @@ -0,0 +1,263 @@ +# WARNING: This file is AUTO GENERATED: Manual edits will be lost next time I regenerate the file. +# Generator: '../org.openembedded.dev/contrib/python/generate-manifest-2.6.py' Version 20081214 (C) 2002-2008 Michael 'Mickey' Lauer <mlauer@vanille-media.de> +# Visit the Python for Embedded Systems Site => http://www.Vanille.de/projects/python.spy + + + +PROVIDES+="python-profile python-threading python-distutils python-doctest python-codecs python-ctypes python-pickle python-bzip2 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-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-stringold 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-profile python-threading python-distutils python-doctest python-codecs python-ctypes python-pickle python-bzip2 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-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-stringold 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-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-bzip2="Python bzip2 support" +RDEPENDS_python-bzip2="python-core" +FILES_python-bzip2="${libdir}/python2.6/lib-dynload/bz2.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.* " + +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" +FILES_python-email="${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/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-devel="Python Development Package" +RDEPENDS_python-devel="python-core" +FILES_python-devel="${includedir} ${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's 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.* " + +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/BaseHTTPServer.* ${libdir}/python2.6/SimpleHTTPServer.* ${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__.* " + +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-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-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-codecs python-ctypes python-pickle python-bzip2 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-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-stringold 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/recipes/python/python-2.6.1/00-fix-bindir-libdir-for-cross.patch b/recipes/python/python-2.6.1/00-fix-bindir-libdir-for-cross.patch new file mode 100644 index 0000000000..2559e3a0e4 --- /dev/null +++ b/recipes/python/python-2.6.1/00-fix-bindir-libdir-for-cross.patch @@ -0,0 +1,20 @@ +# $(exec_prefix) points to the wrong directory, when installing +# a cross-build. @bindir@ and @libdir@ works better and doesn't +# affect the native build. +# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de> + +Index: Python-2.6.1/Makefile.pre.in +=================================================================== +--- Python-2.6.1.orig/Makefile.pre.in ++++ Python-2.6.1/Makefile.pre.in +@@ -86,8 +86,8 @@ exec_prefix= @exec_prefix@ + datarootdir= @datarootdir@ + + # Expanded directories +-BINDIR= $(exec_prefix)/bin +-LIBDIR= $(exec_prefix)/lib ++BINDIR= @bindir@ ++LIBDIR= @libdir@ + MANDIR= @mandir@ + INCLUDEDIR= @includedir@ + CONFINCLUDEDIR= $(exec_prefix)/include diff --git a/recipes/python/python-2.6.1/01-use-proper-tools-for-cross-build.patch b/recipes/python/python-2.6.1/01-use-proper-tools-for-cross-build.patch new file mode 100644 index 0000000000..e89faa4fb0 --- /dev/null +++ b/recipes/python/python-2.6.1/01-use-proper-tools-for-cross-build.patch @@ -0,0 +1,116 @@ +# We need to ensure our host tools get run during build, not the freshly +# built cross-tools (this will not work), so we introduce HOSTPYTHON and HOSTPGEN. +# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de> + +Index: Python-2.6.1/Makefile.pre.in +=================================================================== +--- Python-2.6.1.orig/Makefile.pre.in ++++ Python-2.6.1/Makefile.pre.in +@@ -175,6 +175,7 @@ UNICODE_OBJS= @UNICODE_OBJS@ + + PYTHON= python$(EXE) + BUILDPYTHON= python$(BUILDEXE) ++HOSTPYTHON= $(BUILDPYTHON) + + # The task to run while instrument when building the profile-opt target + PROFILE_TASK= $(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck +@@ -205,7 +206,7 @@ GRAMMAR_INPUT= $(srcdir)/Grammar/Grammar + ########################################################################## + # Parser + PGEN= Parser/pgen$(EXE) +- ++HOSTPGEN= $(PGEN)$(EXE) + POBJS= \ + Parser/acceler.o \ + Parser/grammar1.o \ +@@ -394,8 +395,8 @@ platform: $(BUILDPYTHON) + # Build the shared modules + sharedmods: $(BUILDPYTHON) + @case $$MAKEFLAGS in \ +- *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \ +- *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \ ++ *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py -q build;; \ ++ *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py build;; \ + esac + + # Build static library +@@ -513,7 +514,7 @@ Modules/python.o: $(srcdir)/Modules/pyth + + $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT) + -@$(INSTALL) -d Include +- -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) ++ -$(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) + + $(PGEN): $(PGENOBJS) + $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN) +@@ -879,23 +880,23 @@ libinstall: build_all $(srcdir)/Lib/$(PL + done + $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt + PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ ++ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST) -f \ + -x 'bad_coding|badsyntax|site-packages' $(DESTDIR)$(LIBDEST) + PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ ++ $(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST) -f \ + -x 'bad_coding|badsyntax|site-packages' $(DESTDIR)$(LIBDEST) + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ ++ $(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST)/site-packages -f \ + -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- ./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \ ++ $(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST)/site-packages -f \ + -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- ./$(BUILDPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()" ++ $(HOSTPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()" + + # Create the PLATDIR source directory, if one wasn't distributed.. + $(srcdir)/Lib/$(PLATDIR): +@@ -993,7 +994,7 @@ libainstall: all + # Install the dynamically loadable modules + # This goes into $(exec_prefix) + sharedinstall: +- $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \ ++ $(RUNSHARED) $(HOSTPYTHON) -E $(srcdir)/setup.py install \ + --prefix=$(prefix) \ + --install-scripts=$(BINDIR) \ + --install-platlib=$(DESTSHARED) \ +Index: Python-2.6.1/setup.py +=================================================================== +--- Python-2.6.1.orig/setup.py ++++ Python-2.6.1/setup.py +@@ -276,6 +276,7 @@ class PyBuildExt(build_ext): + self.failed.append(ext.name) + self.announce('*** WARNING: renaming "%s" since importing it' + ' failed: %s' % (ext.name, why), level=3) ++ return + assert not self.inplace + basename, tail = os.path.splitext(ext_filename) + newname = basename + "_failed" + tail +@@ -310,8 +311,8 @@ class PyBuildExt(build_ext): + + def detect_modules(self): + # Ensure that /usr/local is always used +- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') +- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') ++ # add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') ++ # add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') + + # Add paths specified in the environment variables LDFLAGS and + # CPPFLAGS for header and library files. +@@ -410,6 +411,9 @@ class PyBuildExt(build_ext): + + # XXX Omitted modules: gl, pure, dl, SGI-specific modules + ++ lib_dirs = [ os.getenv( "STAGING_LIBDIR" ) ] ++ inc_dirs = [ os.getenv( "STAGING_INCDIR" ) ] ++ + # + # The following modules are all pretty straightforward, and compile + # on pretty much any POSIXish platform. diff --git a/recipes/python/python-2.6.1/02-remove-test-for-cross.patch b/recipes/python/python-2.6.1/02-remove-test-for-cross.patch new file mode 100644 index 0000000000..48386ea462 --- /dev/null +++ b/recipes/python/python-2.6.1/02-remove-test-for-cross.patch @@ -0,0 +1,94 @@ +# OpenEmbedded prepopulates the autotools site cache, so if this +# would be using AC_TRY_CACHE, we could patch it in a more sane way +# Alas, I don't have enough autotalent to do that. +# +# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de> +Index: Python-2.6.1/configure.in +=================================================================== +--- Python-2.6.1.orig/configure.in ++++ Python-2.6.1/configure.in +@@ -2556,38 +2556,6 @@ AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_ + AC_CHECK_LIB(resolv, inet_aton) + ) + +-# On Tru64, chflags seems to be present, but calling it will +-# exit Python +-AC_MSG_CHECKING(for chflags) +-AC_TRY_RUN([ +-#include <sys/stat.h> +-#include <unistd.h> +-int main(int argc, char*argv[]) +-{ +- if(chflags(argv[0], 0) != 0) +- return 1; +- return 0; +-} +-],AC_DEFINE(HAVE_CHFLAGS, 1, Define to 1 if you have the `chflags' function.) +- AC_MSG_RESULT(yes), +- AC_MSG_RESULT(no) +-) +- +-AC_MSG_CHECKING(for lchflags) +-AC_TRY_RUN([ +-#include <sys/stat.h> +-#include <unistd.h> +-int main(int argc, char*argv[]) +-{ +- if(lchflags(argv[0], 0) != 0) +- return 1; +- return 0; +-} +-],AC_DEFINE(HAVE_LCHFLAGS, 1, Define to 1 if you have the `lchflags' function.) +- AC_MSG_RESULT(yes), +- AC_MSG_RESULT(no) +-) +- + dnl Check if system zlib has *Copy() functions + dnl + dnl On MacOSX the linker will search for dylibs on the entire linker path +@@ -3649,45 +3617,6 @@ else + AC_MSG_RESULT(no) + fi + +-AC_MSG_CHECKING(for %zd printf() format support) +-AC_TRY_RUN([#include <stdio.h> +-#include <stddef.h> +-#include <string.h> +- +-#ifdef HAVE_SYS_TYPES_H +-#include <sys/types.h> +-#endif +- +-#ifdef HAVE_SSIZE_T +-typedef ssize_t Py_ssize_t; +-#elif SIZEOF_VOID_P == SIZEOF_LONG +-typedef long Py_ssize_t; +-#else +-typedef int Py_ssize_t; +-#endif +- +-int main() +-{ +- char buffer[256]; +- +- if(sprintf(buffer, "%zd", (size_t)123) < 0) +- return 1; +- +- if (strcmp(buffer, "123")) +- return 1; +- +- if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0) +- return 1; +- +- if (strcmp(buffer, "-123")) +- return 1; +- +- return 0; +-}], +-[AC_MSG_RESULT(yes) +- AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t])], +- AC_MSG_RESULT(no)) +- + AC_CHECK_TYPE(socklen_t,, + AC_DEFINE(socklen_t,int, + Define to `int' if <sys/socket.h> does not define.),[ diff --git a/recipes/python/python-2.6.1/03-fix-tkinter-detection.patch b/recipes/python/python-2.6.1/03-fix-tkinter-detection.patch new file mode 100644 index 0000000000..a1a385a07c --- /dev/null +++ b/recipes/python/python-2.6.1/03-fix-tkinter-detection.patch @@ -0,0 +1,40 @@ +# We need to supply STAGING_INCDIR here, otherwise the Tk headers +# will not be found. +# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille.de> + +Index: Python-2.6.1/setup.py +=================================================================== +--- Python-2.6.1.orig/setup.py ++++ Python-2.6.1/setup.py +@@ -1543,7 +1543,7 @@ class PyBuildExt(build_ext): + dotversion = dotversion[:-1] + '.' + dotversion[-1] + tcl_include_sub = [] + tk_include_sub = [] +- for dir in inc_dirs: ++ for dir in [os.getenv("STAGING_INCDIR")]: + tcl_include_sub += [dir + os.sep + "tcl" + dotversion] + tk_include_sub += [dir + os.sep + "tk" + dotversion] + tk_include_sub += tcl_include_sub +@@ -1562,22 +1562,6 @@ class PyBuildExt(build_ext): + if dir not in include_dirs: + include_dirs.append(dir) + +- # Check for various platform-specific directories +- if platform == 'sunos5': +- include_dirs.append('/usr/openwin/include') +- added_lib_dirs.append('/usr/openwin/lib') +- elif os.path.exists('/usr/X11R6/include'): +- include_dirs.append('/usr/X11R6/include') +- added_lib_dirs.append('/usr/X11R6/lib64') +- added_lib_dirs.append('/usr/X11R6/lib') +- elif os.path.exists('/usr/X11R5/include'): +- include_dirs.append('/usr/X11R5/include') +- added_lib_dirs.append('/usr/X11R5/lib') +- else: +- # Assume default location for X11 +- include_dirs.append('/usr/X11/include') +- added_lib_dirs.append('/usr/X11/lib') +- + # If Cygwin, then verify that X is installed before proceeding + if platform == 'cygwin': + x11_inc = find_file('X11/Xlib.h', [], include_dirs) diff --git a/recipes/python/python-2.6.1/04-default-is-optimized.patch b/recipes/python/python-2.6.1/04-default-is-optimized.patch new file mode 100644 index 0000000000..805f4f696c --- /dev/null +++ b/recipes/python/python-2.6.1/04-default-is-optimized.patch @@ -0,0 +1,52 @@ +# when compiling for an embedded system, we need every bit of +# performance we can get. default to optimized with the option +# of opt-out. +# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de> + +Index: Python-2.6.1/Python/compile.c +=================================================================== +--- Python-2.6.1.orig/Python/compile.c ++++ Python-2.6.1/Python/compile.c +@@ -32,7 +32,7 @@ + #include "symtable.h" + #include "opcode.h" + +-int Py_OptimizeFlag = 0; ++int Py_OptimizeFlag = 1; + + #define DEFAULT_BLOCK_SIZE 16 + #define DEFAULT_BLOCKS 8 +Index: Python-2.6.1/Modules/main.c +=================================================================== +--- Python-2.6.1.orig/Modules/main.c ++++ Python-2.6.1/Modules/main.c +@@ -40,7 +40,7 @@ static char **orig_argv; + static int orig_argc; + + /* command line options */ +-#define BASE_OPTS "3bBc:dEhiJm:OQ:sStuUvVW:xX?" ++#define BASE_OPTS "3bBc:dEhiJm:NOQ:sStuUvVW:xX?" + + #ifndef RISCOS + #define PROGRAM_OPTS BASE_OPTS +@@ -69,8 +69,7 @@ Options and arguments (and corresponding + static char *usage_2 = "\ + if stdin does not appear to be a terminal; also PYTHONINSPECT=x\n\ + -m mod : run library module as a script (terminates option list)\n\ +--O : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x\n\ +--OO : remove doc-strings in addition to the -O optimizations\n\ ++-N : do NOT optimize generated bytecode\n\ + -Q arg : division options: -Qold (default), -Qwarn, -Qwarnall, -Qnew\n\ + -s : don't add user site directory to sys.path; also PYTHONNOUSERSITE\n\ + -S : don't imply 'import site' on initialization\n\ +@@ -353,8 +352,8 @@ Py_Main(int argc, char **argv) + + /* case 'J': reserved for Jython */ + +- case 'O': +- Py_OptimizeFlag++; ++ case 'N': ++ Py_OptimizeFlag=0; + break; + + case 'B': diff --git a/recipes/python/python-2.6.1/05-enable-ctypes-cross-build.patch b/recipes/python/python-2.6.1/05-enable-ctypes-cross-build.patch new file mode 100644 index 0000000000..874b8be01d --- /dev/null +++ b/recipes/python/python-2.6.1/05-enable-ctypes-cross-build.patch @@ -0,0 +1,28 @@ +# CTypes need to know the actual host we are building on. +# Signed-Off: Michael Dietrich <mdt@emdete.de> + +Index: Python-2.6.1/setup.py +=================================================================== +--- Python-2.6.1.orig/setup.py ++++ Python-2.6.1/setup.py +@@ -1656,16 +1656,16 @@ class PyBuildExt(build_ext): + ffi_configfile): + from distutils.dir_util import mkpath + mkpath(ffi_builddir) +- config_args = [] ++ config_args = ['--host=%s' % os.environ["HOST_SYS"], ] + + # Pass empty CFLAGS because we'll just append the resulting + # CFLAGS to Python's; -g or -O2 is to be avoided. +- cmd = "cd %s && env CFLAGS='' '%s/configure' %s" \ +- % (ffi_builddir, ffi_srcdir, " ".join(config_args)) ++ cmd = "(cd %s && autoconf -W cross) && (cd %s && env CFLAGS='' '%s/configure' %s)" \ ++ % (ffi_srcdir, ffi_builddir, ffi_srcdir, " ".join(config_args)) + + res = os.system(cmd) + if res or not os.path.exists(ffi_configfile): +- print "Failed to configure _ctypes module" ++ print "Failed to configure _ctypes module (ret=%d) or missing conffile=%s" % ( ret, ffi_configfile ) + return False + + fficonfig = {} diff --git a/recipes/python/python-2.6.1/99-ignore-optimization-flag.patch b/recipes/python/python-2.6.1/99-ignore-optimization-flag.patch new file mode 100644 index 0000000000..02dc44c847 --- /dev/null +++ b/recipes/python/python-2.6.1/99-ignore-optimization-flag.patch @@ -0,0 +1,19 @@ +# Reinstate the empty -O option to fix weird mixing of native and target +# binaries and libraries with LD_LIBRARY_PATH when host==target +# +# Signed-off-by: Denys Dmytriyenko <denis@denix.org> + +Index: Python-2.6.1/Modules/main.c +=================================================================== +--- Python-2.6.1-orig/Modules/main.c ++++ Python-2.6.1/Modules/main.c +@@ -352,6 +352,9 @@ Py_Main(int argc, char **argv) + + /* case 'J': reserved for Jython */ + ++ case 'O': /* ignore it */ ++ break; ++ + case 'N': + Py_OptimizeFlag=0; + break; diff --git a/recipes/python/python-2.6.1/sitecustomize.py b/recipes/python/python-2.6.1/sitecustomize.py new file mode 100644 index 0000000000..273901898a --- /dev/null +++ b/recipes/python/python-2.6.1/sitecustomize.py @@ -0,0 +1,45 @@ +# OpenEmbedded sitecustomize.py (C) 2002-2008 Michael 'Mickey' Lauer <mlauer@vanille-media.de> +# GPLv2 or later +# Version: 20081123 +# Features: +# * set proper default encoding +# * enable readline completion in the interactive interpreter +# * load command line history on startup +# * save command line history on exit + +import os + +def __exithandler(): + try: + readline.write_history_file( "%s/.python-history" % os.getenv( "HOME", "/tmp" ) ) + except IOError: + pass + +def __registerExitHandler(): + import atexit + atexit.register( __exithandler ) + +def __enableReadlineSupport(): + readline.set_history_length( 1000 ) + readline.parse_and_bind( "tab: complete" ) + try: + readline.read_history_file( "%s/.python-history" % os.getenv( "HOME", "/tmp" ) ) + except IOError: + pass + +def __enableDefaultEncoding(): + import sys + try: + sys.setdefaultencoding( "utf8" ) + except LookupError: + pass + +import sys +try: + import rlcompleter, readline +except ImportError: + pass +else: + __enableDefaultEncoding() + __registerExitHandler() + __enableReadlineSupport() diff --git a/recipes/python/python-ao_0.82.bb b/recipes/python/python-ao_0.82.bb new file mode 100644 index 0000000000..98c8af40e0 --- /dev/null +++ b/recipes/python/python-ao_0.82.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "Python Bindings for libao" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +DEPENDS = "libao" +SRCNAME = "pyao" +PR = "ml1" + +SRC_URI = "http://www.andrewchatham.com/pyogg/download/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +do_configure_prepend() { + touch Setup + echo "ao_libs = ao" >>Setup + echo "ao_lib_dir = ${STAGING_LIBDIR}" >>Setup + echo "ao_include_dir = ${STAGING_INCDIR}" >>Setup +} diff --git a/recipes/python/python-cheetah_2.0.1.bb b/recipes/python/python-cheetah_2.0.1.bb new file mode 100644 index 0000000000..8777aaf719 --- /dev/null +++ b/recipes/python/python-cheetah_2.0.1.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "Python template engine and code generation tool" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "MIT" +SRCNAME = "Cheetah" +PR = "r1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/cheetahtemplate/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +RDEPENDS = "python-pickle python-pprint" diff --git a/recipes/python/python-coherence_0.6.2.bb b/recipes/python/python-coherence_0.6.2.bb new file mode 100644 index 0000000000..54eed59574 --- /dev/null +++ b/recipes/python/python-coherence_0.6.2.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Coherence is a DLNA/UPnP mediaserver + backends" +SECTION = "devel/python" +LICENSE = "MIT" +HOMEPAGE = "http://coherence.beebits.net/wiki" +PR = "r1" + +inherit setuptools + +SRC_URI = "http://coherence.beebits.net/download/Coherence-${PV}.tar.gz" +S = "${WORKDIR}/Coherence-${PV}" + +FILES_${PN} += "${datadir}" + +DEPENDS = "libxml2 libxml2-native" +RDEPENDS_${PN} += "python-twisted-pair python-divmodepsilon python-nevow python-gst python-dbus \ + python-configobj python-twisted python-twisted-core python-twisted-protocols python-misc \ + python-zopeinterface python-modules python-pygobject python-gdata \ + python-divmodaxiom" + + diff --git a/recipes/python/python-coherence_svn.bb b/recipes/python/python-coherence_svn.bb new file mode 100644 index 0000000000..031067672e --- /dev/null +++ b/recipes/python/python-coherence_svn.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "Coherence is a DLNA/UPnP mediaserver + backends" +SECTION = "devel/python" +LICENSE = "MIT" +HOMEPAGE = "http://coherence.beebits.net/wiki" + +PR = "r1" + +PV = "0.6.0+svnr${SRCREV}" + +inherit setuptools + +DISTUTILS_INSTALL_ARGS = "--root=${D} \ + --prefix=${prefix} \ + --install-data=${datadir}" + +SRC_URI = "svn://coherence.beebits.net/svn/trunk;module=Coherence;proto=https" +S = "${WORKDIR}/Coherence" + +FILES_${PN} += "${datadir}" +RDEPENDS_${PN} += "python-twisted-pair python-divmodepsilon python-nevow python-gst python-dbus \ + python-configobj python-twisted python-twisted-core python-twisted-protocols python-misc \ + python-zopeinterface zope python-modules python-pygobject python-gdata python-inotify \ + python-divmodaxiom" + + diff --git a/recipes/python/python-configobj_4.5.3.bb b/recipes/python/python-configobj_4.5.3.bb new file mode 100644 index 0000000000..89ea344bae --- /dev/null +++ b/recipes/python/python-configobj_4.5.3.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "ConfigObj is a simple but powerful config file reader and writer" +LICENSE = "BSD" + +SRC_URI = "http://pypi.python.org/packages/source/C/ConfigObj/configobj-${PV}.tar.gz" + +inherit distutils + +S = "${WORKDIR}/configobj-${PV}" + + diff --git a/recipes/python/python-connexion_svn.bb b/recipes/python/python-connexion_svn.bb new file mode 100644 index 0000000000..ae546f5256 --- /dev/null +++ b/recipes/python/python-connexion_svn.bb @@ -0,0 +1,29 @@ +DESCRIPTION = "A versatile network connection library" +HOMEPAGE = "http://www.radlinux.org/connexion/" +SECTION = "devel/python" +LICENSE = "GPL" +BV = "0.4.6" +PV = "${BV}+svnr${SRCREV}" +PR = "ml1" + +inherit distutils + +SRC_URI = "svn://radlinux.org/radlinux/branches/${BV};module=lib" +S = "${WORKDIR}/lib" + +MODULES = "cxutil cxnet" + +do_compile() { + for i in ${MODULES}; do + cd ${S}/$i && distutils_do_compile + done +} + +do_install() { + for i in ${MODULES}; do + cd ${S}/$i && distutils_do_install + done +} + +RDEPENDS_${PN} += "python-ctypes" + diff --git a/recipes/python/python-constraint_1.1.bb b/recipes/python/python-constraint_1.1.bb new file mode 100644 index 0000000000..06c6a909a4 --- /dev/null +++ b/recipes/python/python-constraint_1.1.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "The constraint package is a constraint \ +satisfaction problem solver written in 100% pure Python, using \ +constraint propagation algorithms. So far, facilities are \ +provided to work with finite domains only." +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +PR = "ml1" + +SRC_URI = "http://labix.org/download/python-constraint/python-constraint-${PV}.tar.bz2" + +inherit distutils + diff --git a/recipes/python/python-cython-native_0.10.3.bb b/recipes/python/python-cython-native_0.10.3.bb new file mode 100644 index 0000000000..a5c78cebe2 --- /dev/null +++ b/recipes/python/python-cython-native_0.10.3.bb @@ -0,0 +1,10 @@ +require python-cython_${PV}.bb +inherit native +DEPENDS = "python-native" +RDEPENDS = "" + +do_stage() { + BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ + STAGING_LIBDIR=${STAGING_LIBDIR} STAGING_INCDIR=${STAGING_INCDIR} \ + ${STAGING_BINDIR}/python setup.py install --prefix=${STAGING_BINDIR}/.. --install-data=${STAGING_DATADIR} +} diff --git a/recipes/python/python-cython_0.10.3.bb b/recipes/python/python-cython_0.10.3.bb new file mode 100644 index 0000000000..f78ba38e87 --- /dev/null +++ b/recipes/python/python-cython_0.10.3.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "Cython 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 = "Cython" +PR = "ml0" + +SRC_URI = "http://www.cython.org/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-daap_0.7.1.bb b/recipes/python/python-daap_0.7.1.bb new file mode 100644 index 0000000000..e3ddde1116 --- /dev/null +++ b/recipes/python/python-daap_0.7.1.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "A pure Python DAAP client implementation" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "LGPL" + +inherit distutils + +SRC_URI = "http://jerakeen.org/files/PythonDaap-${PV}.tar.gz" +S = "${WORKDIR}/PythonDaap-${PV}" + +RDEPENDS = "python-compression" + diff --git a/recipes/python/python-dbus_0.83.0.bb b/recipes/python/python-dbus_0.83.0.bb new file mode 100644 index 0000000000..7bc81f0396 --- /dev/null +++ b/recipes/python/python-dbus_0.83.0.bb @@ -0,0 +1,22 @@ +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 = "ml1" + +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 + +do_stage() { + autotools_stage_all +} + +RDEPENDS = "python-io python-logging python-stringold python-threading python-xml" + +FILES_${PN}-dev += "${libdir}/pkgconfig diff --git a/recipes/python/python-dialog_2.7.bb b/recipes/python/python-dialog_2.7.bb new file mode 100644 index 0000000000..9d66d297e0 --- /dev/null +++ b/recipes/python/python-dialog_2.7.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "Dialog-like functionality for Python Console Programs" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "LGPL" +SRCNAME = "pythondialog" +PR = "ml1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${SRCNAME}/${SRCNAME}-${PV}.tar.bz2" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-divmodaxiom_0.5.30.bb b/recipes/python/python-divmodaxiom_0.5.30.bb new file mode 100644 index 0000000000..94c8a5317b --- /dev/null +++ b/recipes/python/python-divmodaxiom_0.5.30.bb @@ -0,0 +1,8 @@ +DESCRIPTION = "An object oriented database" +LICENSE = "MIT" + +REALPN = "Axiom" + +DEPENDS += "python-divmodepsilon-native" + +require divmod.inc diff --git a/recipes/python/python-divmodepsilon-native_0.5.11.bb b/recipes/python/python-divmodepsilon-native_0.5.11.bb new file mode 100644 index 0000000000..185708b611 --- /dev/null +++ b/recipes/python/python-divmodepsilon-native_0.5.11.bb @@ -0,0 +1,11 @@ +require python-divmodepsilon_${PV}.bb +inherit native + +DEPENDS = "python-native python-twisted-native zope-native" + +do_stage() { + BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ + STAGING_LIBDIR=${STAGING_LIBDIR} STAGING_INCDIR=${STAGING_INCDIR} \ + ${STAGING_BINDIR}/python setup.py install --prefix=${STAGING_BINDIR}/.. --install-data=${STAGING_DATADIR} +} + diff --git a/recipes/python/python-divmodepsilon_0.5.11.bb b/recipes/python/python-divmodepsilon_0.5.11.bb new file mode 100644 index 0000000000..5184b69252 --- /dev/null +++ b/recipes/python/python-divmodepsilon_0.5.11.bb @@ -0,0 +1,7 @@ +DESCRIPTION = "A small utility package that depends on tools too recent for Twisted " +LICENSE = "MIT" + +REALPN = "Epsilon" + +require divmod.inc + diff --git a/recipes/python/python-django_1.0.2.bb b/recipes/python/python-django_1.0.2.bb new file mode 100644 index 0000000000..0c572eeeda --- /dev/null +++ b/recipes/python/python-django_1.0.2.bb @@ -0,0 +1,28 @@ +DESCRIPTION = "Python Web framework" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "BSD" +SRCNAME = "Django" +PR = "ml0" + +SRC_URI = "http://media.djangoproject.com/releases/${PV}/${SRCNAME}-${PV}-final.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}-final" + +inherit distutils + +DISTUTILS_INSTALL_ARGS = "--root=${D} --prefix=${prefix}" + +# TODO: huge package, increase granularity + +RDEPENDS_${PN} = "\ + python-email \ + python-netserver \ + python-pickle \ + python-pprint \ + python-shell \ + python-sqlite \ + python-textutils \ + python-threading \ + python-unixadmin \ + python-xml \ +" diff --git a/recipes/python/python-docutils-native_0.5.bb b/recipes/python/python-docutils-native_0.5.bb new file mode 100644 index 0000000000..5e294e55a2 --- /dev/null +++ b/recipes/python/python-docutils-native_0.5.bb @@ -0,0 +1,8 @@ +require python-docutils_${PV}.bb +DEPENDS = "python-native" +inherit native + +do_stage() { + distutils_stage_all +} + diff --git a/recipes/python/python-docutils_0.5.bb b/recipes/python/python-docutils_0.5.bb new file mode 100644 index 0000000000..2fc7184b83 --- /dev/null +++ b/recipes/python/python-docutils_0.5.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "Text processing system" +HOMEPAGE = "http://docutils.sourceforge.net" +SECTION = "devel/python" +LICENSE = "PSF" +PR = "ml0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/docutils/docutils-${PV}.tar.gz" +S = "${WORKDIR}/docutils-${PV}" + +inherit distutils diff --git a/recipes/python/python-dweba_0.9.9+1.0.0pre14.bb b/recipes/python/python-dweba_0.9.9+1.0.0pre14.bb new file mode 100644 index 0000000000..ddc5979eab --- /dev/null +++ b/recipes/python/python-dweba_0.9.9+1.0.0pre14.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Dweba is a framework to develop distributed and web applications \ +for the python programming language." +HOMEPAGE = "http://www.threekong.com" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "MIT" +PR = "ml0" + +RPV = "1.0.0-pre14" + +SRC_URI = "http://www.threekong.com/download/dweba/dweba-${RPV}.tar.gz" +S = "${WORKDIR}/dweba-${RPV}" + +inherit distutils diff --git a/recipes/python/python-ecore_svn.bb b/recipes/python/python-ecore_svn.bb new file mode 100644 index 0000000000..9907b27262 --- /dev/null +++ b/recipes/python/python-ecore_svn.bb @@ -0,0 +1,7 @@ +require python-efl.inc +DEPENDS += "python-evas ecore" +RDEPENDS += "python-evas" + +do_stage() { + distutils_stage_all +} diff --git a/recipes/python/python-edbus_svn.bb b/recipes/python/python-edbus_svn.bb new file mode 100644 index 0000000000..6a9b61e441 --- /dev/null +++ b/recipes/python/python-edbus_svn.bb @@ -0,0 +1,6 @@ +require python-efl.inc +DEPENDS += "edbus python-dbus" +RDEPENDS += "python-dbus" + +SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/BINDINGS/python;module=python-e_dbus;proto=http" +S = "${WORKDIR}/python-e_dbus" diff --git a/recipes/python/python-edje/0001-fix-unicode-conversion.patch b/recipes/python/python-edje/0001-fix-unicode-conversion.patch new file mode 100644 index 0000000000..7964e097d1 --- /dev/null +++ b/recipes/python/python-edje/0001-fix-unicode-conversion.patch @@ -0,0 +1,41 @@ +From fa12a33b5a3c0e86231ca84967d9eff456e5f314 Mon Sep 17 00:00:00 2001 +From: Jan Luebbe <jluebbe@debian.org> +Date: Sat, 9 Aug 2008 18:30:04 +0200 +Subject: [PATCH] fix unicode conversion + +--- + edje/edje.c_edje_object.pxi | 11 +++++++---- + 1 files changed, 7 insertions(+), 4 deletions(-) + +diff --git a/edje/edje.c_edje_object.pxi b/edje/edje.c_edje_object.pxi +index 0f4da68..21c237e 100644 +--- a/edje/edje.c_edje_object.pxi ++++ b/edje/edje.c_edje_object.pxi +@@ -391,17 +391,20 @@ cdef public class Edje(evas.c_evas.Object) [object PyEdje, type PyEdje_Type]: + else: + raise TypeError("func must be callable or None") + +- def part_text_set(self, char *part, char *text): +- edje_object_part_text_set(self.obj, part, text) ++ def part_text_set(self, char *part, text): ++ cdef char *s ++ u = text.encode("utf8") ++ s = u ++ edje_object_part_text_set(self.obj, part, s) + + def part_text_get(self, char *part): +- "@rtype: str" ++ "@rtype: unicode" + cdef char *s + s = edje_object_part_text_get(self.obj, part) + if s == NULL: + return None + else: +- return s ++ return s.decode("utf8") + + def part_swallow(self, char *part, c_evas.Object obj): + """Swallows an object into the edje +-- +1.5.6.3 + diff --git a/recipes/python/python-edje_svn.bb b/recipes/python/python-edje_svn.bb new file mode 100644 index 0000000000..5b429b4922 --- /dev/null +++ b/recipes/python/python-edje_svn.bb @@ -0,0 +1,5 @@ +require python-efl.inc +DEPENDS += "edje python-evas" +RDEPENDS += "python-evas" + +SRC_URI += "file://0001-fix-unicode-conversion.patch;patch=1" diff --git a/recipes/python/python-efl.inc b/recipes/python/python-efl.inc new file mode 100644 index 0000000000..acd1660f08 --- /dev/null +++ b/recipes/python/python-efl.inc @@ -0,0 +1,38 @@ +DESCRIPTION = "${PN} bindings" +LICENSE = "BSD" +AUTHOR = "Gustavo Sverzut Barbieri <barbieri@gmail.com>" +HOMEPAGE = "http://www.enlightenment.org" +# NOTE: Due to a bug in distutils, even if we don't use pyrex but cython, +# we need to build pyrex otherwise cython doesn't get called to build +# the extension modules. +DEPENDS = "python-cython-native python-pyrex-native python-numeric eina" +RDEPENDS += "python-lang" +PV = "0.3.1+svnr${SRCREV}" +PR = "ml0" + +inherit setuptools + +SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/BINDINGS/python;module=${PN};proto=http" +S = "${WORKDIR}/${PN}" + +do_install_append() { + if [ -e examples ]; then + for i in `find examples -name "*.edc"`; do + cd ${S}/`dirname $i` + echo "Generating .edj file for $i..." + edje_cc `basename $i` + echo "Removing sources in this directory..." + rm -f *.edc *.png *.ttf *.jpeg + done + cd ${S} + install -d ${D}${datadir}/${PN}/ + cp -a examples ${D}${datadir}/${PN}/ + find ${D}${datadir}/${PN}/examples -name "CVS" | xargs rm -rf + find ${D}${datadir}/${PN}/examples -name ".cvsignore" | xargs rm -f + fi +} + +FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/*.egg/*/*/.debug" + +PACKAGES += "${PN}-examples" +FILES_${PN}-examples = "${datadir}/${PN}/examples" diff --git a/recipes/python/python-egenix-mx-base_3.1.1.bb b/recipes/python/python-egenix-mx-base_3.1.1.bb new file mode 100644 index 0000000000..aba3a710c7 --- /dev/null +++ b/recipes/python/python-egenix-mx-base_3.1.1.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "The eGenix.com mx Extensions for Python are a collection of professional quality Python software \ +tools which enhance Python's usability in many important areas such as ODBC database connectivity, fast text \ +processing, date/time processing and web site programming." +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "EGENIX" +SRCNAME = "egenix-mx-base" +PR = "ml0" + +SRC_URI = "http://downloads.egenix.com/python/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +export INCLUDE = "${STAGING_INCDIR}/${PYTHON_DIR}" +export LIB = "${STAGING_LIBDIR}" + +FILES_${PN} += "${datadir}" +FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/mx/*/*/.debug" diff --git a/recipes/python/python-elementary_svn.bb b/recipes/python/python-elementary_svn.bb new file mode 100644 index 0000000000..44c5613edf --- /dev/null +++ b/recipes/python/python-elementary_svn.bb @@ -0,0 +1,9 @@ +require python-efl.inc +DEPENDS += "elementary" +RDEPENDS += "python-evas python-ecore python-edje" +PV = "0.1+svnr${SRCREV}" +PR = "ml0" + +do_stage() { + distutils_stage_all +} diff --git a/recipes/python/python-elementtree_1.2.7-20070827-preview.bb b/recipes/python/python-elementtree_1.2.7-20070827-preview.bb new file mode 100644 index 0000000000..f1e4c8b322 --- /dev/null +++ b/recipes/python/python-elementtree_1.2.7-20070827-preview.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Lightweight Python components for handling XML" +SECTION = "devel/python" +LICENSE = "Python" +HOMEPAGE = "http://effbot.org/zone/element-index.htm" +PR = "r0" + +inherit distutils + +SRC_URI = "http://effbot.org/media/downloads/elementtree-${PV}.zip" +S = "${WORKDIR}/elementtree-${PV}" + +FILES_${PN} += "${datadir}" + + diff --git a/recipes/python/python-emotion_svn.bb b/recipes/python/python-emotion_svn.bb new file mode 100644 index 0000000000..9a9628ef50 --- /dev/null +++ b/recipes/python/python-emotion_svn.bb @@ -0,0 +1,3 @@ +require python-efl.inc +DEPENDS += "emotion python-evas" +RDEPENDS += "python-ecore" diff --git a/recipes/python/python-epsilon_svn.bb b/recipes/python/python-epsilon_svn.bb new file mode 100644 index 0000000000..97b06609c1 --- /dev/null +++ b/recipes/python/python-epsilon_svn.bb @@ -0,0 +1,4 @@ +require python-efl.inc +DEPENDS += "epsilon python-ecore" +RDEPENDS += "python-ecore" + diff --git a/recipes/python/python-etk_svn.bb b/recipes/python/python-etk_svn.bb new file mode 100644 index 0000000000..aff6b1f982 --- /dev/null +++ b/recipes/python/python-etk_svn.bb @@ -0,0 +1,9 @@ +require python-efl.inc +DEPENDS += "etk python-evas python-ecore" +RDEPENDS += "python-evas python-ecore python-edje python-numeric python-math etk-themes" +PV = "0.1.1+svnr${SRCREV}" +PR = "ml1" + +do_stage() { + distutils_stage_all +} diff --git a/recipes/python/python-evas_svn.bb b/recipes/python/python-evas_svn.bb new file mode 100644 index 0000000000..8a95b4418c --- /dev/null +++ b/recipes/python/python-evas_svn.bb @@ -0,0 +1,6 @@ +require python-efl.inc +DEPENDS += "evas" + +do_stage() { + distutils_stage_all +} diff --git a/recipes/python/python-fam_1.1.1.bb b/recipes/python/python-fam_1.1.1.bb new file mode 100644 index 0000000000..0a49402973 --- /dev/null +++ b/recipes/python/python-fam_1.1.1.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Python access to the File Alteration Monitor" +HOMEPAGE = "http://python-fam.sourceforge.net/" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "LGPL" +DEPENDS = "fam" +PR = "r1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tar.gz" + +inherit distutils + +RDEPENDS = "fam python-core python-io" + diff --git a/recipes/python/python-flup_1.0.1.bb b/recipes/python/python-flup_1.0.1.bb new file mode 100644 index 0000000000..d5f865da11 --- /dev/null +++ b/recipes/python/python-flup_1.0.1.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "Random assortment of WSGI servers" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "BSD" +SRCNAME = "flup" +PR = "ml0" + +SRC_URI = "http://pypi.python.org/packages/source/f/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit setuptools diff --git a/recipes/python/python-fnorb_1.3.bb b/recipes/python/python-fnorb_1.3.bb new file mode 100644 index 0000000000..15ae037ca6 --- /dev/null +++ b/recipes/python/python-fnorb_1.3.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "A Pure Python CORBA 2.0 Package" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "FNORB" +SRCNAME = "Fnorb" +PR = "r2" + +SRC_URI = "${SOURCEFORGE_MIRROR}/fnorb/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-formencode_1.2.1.bb b/recipes/python/python-formencode_1.2.1.bb new file mode 100644 index 0000000000..99d0537e78 --- /dev/null +++ b/recipes/python/python-formencode_1.2.1.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "HTML form validation, generation, and conversion package" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "LGPL" +SRCNAME = "FormEncode" +PR = "ml0" + +inherit setuptools + +SRC_URI = "http://pypi.python.org/packages/source/F/FormEncode/FormEncode-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" diff --git a/recipes/python/python-fpconst_0.7.2.bb b/recipes/python/python-fpconst_0.7.2.bb new file mode 100644 index 0000000000..13e2377e02 --- /dev/null +++ b/recipes/python/python-fpconst_0.7.2.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "This python module implements constants and \ +functions for working with IEEE754 double-precision special values. \ +It provides constants for Not-a-Number (NaN), Positive Infinity \ +(Inf), and Negative Infinity (-Inf), as well as functions \ +to test for these values." +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +SRCNAME = "fpconst" +PR = "ml0" + +SRC_URI = "http://pypi.python.org/packages/source/f/fpconst/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-fugrep_0.50.bb b/recipes/python/python-fugrep_0.50.bb new file mode 100644 index 0000000000..9df257388d --- /dev/null +++ b/recipes/python/python-fugrep_0.50.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "FuGrep is a Python library for fuzzy pattern matching." +HOMEPAGE = "http://www.j-raedler.de/pages/software/fugrep.php" +SECTION = "devel/python" +LICENSE = "${PN}" +SRCNAME = "FuGrep" +PR = "ml1" + +SRC_URI = "http://www.j-raedler.de/media/Software/FuGrep-${PV}.zip" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-fuse_0.2.bb b/recipes/python/python-fuse_0.2.bb new file mode 100644 index 0000000000..099a0e386a --- /dev/null +++ b/recipes/python/python-fuse_0.2.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "FUSE Python bindings." +SECTION = "devel/python" +LICENSE = "GPLv2" +DEPENDS = "fuse" +SRCNAME = "fuse-python" +PR = "ml0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/fuse/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +FILES_${PN}-dbg += "${libdir}/python*/site-packages/fuseparts/.debu*" diff --git a/recipes/python/python-fusil_1.1.bb b/recipes/python/python-fusil_1.1.bb new file mode 100644 index 0000000000..f67612eb45 --- /dev/null +++ b/recipes/python/python-fusil_1.1.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "Fusil is a Python library used to write fuzzing programs." +HOMEPAGE = "http://fusil.hachoir.org/" +SECTION = "devel/python" +LICENSE = "GPLv2" +SRCNAME = "fusil" +PR = "r1" + +SRC_URI = "http://pypi.python.org/packages/source/f/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +RDEPENDS_${PN} = "\ + python-ptrace \ + python-ctypes \ + python-lang \ + python-logging \ + python-datetime \ + python-shell \ + python-resource \ + python-subprocess \ +" diff --git a/recipes/python/python-gammu_0.26.bb b/recipes/python/python-gammu_0.26.bb new file mode 100644 index 0000000000..13e5484171 --- /dev/null +++ b/recipes/python/python-gammu_0.26.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "Python bindings for the gammu GSM phone communication library." +HOMEPAGE = "http://cihar.com/gammu/python" +SECTION = "devel/python" +DEPENDS = "gammu" +LICENSE = "GPL" +PR = "ml1" + +SRC_URI = "http://dl.cihar.com/python-gammu/latest/python-gammu-${PV}.tar.bz2" + +inherit distutils diff --git a/recipes/python/python-gdata_1.2.4.bb b/recipes/python/python-gdata_1.2.4.bb new file mode 100644 index 0000000000..2e7e424976 --- /dev/null +++ b/recipes/python/python-gdata_1.2.4.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "Google Data APIs Python Client Library" +SECTION = "devel/python" +LICENSE = "Apache" +HOMEPAGE = "http://code.google.com/p/gdata-python-client/" +PR = "r0" + +inherit distutils + +SRC_URI = "http://gdata-python-client.googlecode.com/files/gdata.py-${PV}.tar.gz" +S = "${WORKDIR}/gdata.py-${PV}" + +FILES_${PN} += "${datadir}" + +RDEPENDS = "python-elementtree" + diff --git a/recipes/python/python-gmpy_1.0.1.bb b/recipes/python/python-gmpy_1.0.1.bb new file mode 100644 index 0000000000..a5f064261b --- /dev/null +++ b/recipes/python/python-gmpy_1.0.1.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "General Multiprecision PYthon" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +DEPENDS = "gmp" +SRCNAME = "gmpy" +PR = "r1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${SRCNAME}/${SRCNAME}-sources-101.zip" +S = "${WORKDIR}/${SRCNAME}" + +inherit distutils diff --git a/recipes/python/python-gnosis_1.2.2.bb b/recipes/python/python-gnosis_1.2.2.bb new file mode 100644 index 0000000000..c4ee333990 --- /dev/null +++ b/recipes/python/python-gnosis_1.2.2.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Gnosis Utils contains several Python modules for XML processing, plus other generally useful tools" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPLv2" +SRCNAME = "Gnosis_Utils" +PR = "ml1" + +SRC_URI = "http://gnosis.cx/download/Gnosis_Utils.More/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + diff --git a/recipes/python/python-gst/import-gobject-instead-of-pygtk.patch b/recipes/python/python-gst/import-gobject-instead-of-pygtk.patch new file mode 100644 index 0000000000..b4dafa1cea --- /dev/null +++ b/recipes/python/python-gst/import-gobject-instead-of-pygtk.patch @@ -0,0 +1,19 @@ +Index: gst-python-0.10.10/gst/__init__.py +=================================================================== +--- gst-python-0.10.10.orig/gst/__init__.py ++++ gst-python-0.10.10/gst/__init__.py +@@ -28,13 +28,8 @@ try: + except: + pass + +-import sys ++import sys, gobject + +-# we always require 2.0 of pygtk; so if pygtk is not imported anywhere +-# yet, we import pygtk here and .require +-if 'gobject' not in sys.modules: +- import pygtk +- pygtk.require('2.0') + + class Value: + def __init__(self, type): diff --git a/recipes/python/python-gst/python-path.patch b/recipes/python/python-gst/python-path.patch new file mode 100644 index 0000000000..6cbad8cc5f --- /dev/null +++ b/recipes/python/python-gst/python-path.patch @@ -0,0 +1,33 @@ +Index: gst-python-0.10.10/acinclude.m4 +=================================================================== +--- gst-python-0.10.10.orig/acinclude.m4 ++++ gst-python-0.10.10/acinclude.m4 +@@ -43,16 +43,20 @@ 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 +-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 +- PYTHON_INCLUDES=`$PYTHON-config --includes 2>/dev/null` ++ ++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 +- 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 ++ 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" diff --git a/recipes/python/python-gst_0.10.10.bb b/recipes/python/python-gst_0.10.10.bb new file mode 100644 index 0000000000..faef7cb5f1 --- /dev/null +++ b/recipes/python/python-gst_0.10.10.bb @@ -0,0 +1,35 @@ +DESCRIPTION = "Python Gstreamer bindings" +SECTION = "devel/python" +LICENSE = "LGPL" +DEPENDS = "gstreamer gst-plugins-base python-pygobject" +PR = "ml3" + +SRC_URI = "\ + http://gstreamer.freedesktop.org/src/gst-python/gst-python-${PV}.tar.bz2 \ + file://python-path.patch;patch=1 \ + file://import-gobject-instead-of-pygtk.patch;patch=1 \ +" +S = "${WORKDIR}/gst-python-${PV}" + +inherit autotools distutils-base pkgconfig + +EXTRA_OECONF += "--with-python-includes=${STAGING_INCDIR}/../" + +do_configure_prepend() { + install -d ${S}/m4 + install -m 0644 ${S}/common/m4/*.m4 ${S}/m4/ +} + +do_stage() { + autotools_stage_all +} + +PACKAGES =+ "${PN}-examples" + +FILES_${PN} += "${datadir}/gst-python" +FILES_${PN}-dev += "\ + ${datadir}/gst-python/0.10/defs \ + ${libdir}/${PYTHON_DIR}/site-packages/gst-0.10/gst/*.la \ +" +FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/gst-0.10/gst/.debug/" +FILES_${PN}-examples = "${datadir}/gst-python/0.10/examples" diff --git a/recipes/python/python-imaging/path.patch b/recipes/python/python-imaging/path.patch new file mode 100644 index 0000000000..1dc467a56d --- /dev/null +++ b/recipes/python/python-imaging/path.patch @@ -0,0 +1,37 @@ +Index: Imaging-1.1.5/setup.py +=================================================================== +--- Imaging-1.1.5.orig/setup.py 2005-03-23 19:16:40.000000000 +0100 ++++ Imaging-1.1.5/setup.py 2006-05-31 14:36:07.000000000 +0200 +@@ -28,12 +28,13 @@ + # + # TIFF_ROOT = libinclude("/opt/tiff") + +-FREETYPE_ROOT = None +-JPEG_ROOT = None ++FREETYPE_ROOT = os.environ['STAGING_LIBDIR'], os.environ['STAGING_INCDIR'] ++JPEG_ROOT = os.environ['STAGING_LIBDIR'] + TIFF_ROOT = None +-ZLIB_ROOT = None ++ZLIB_ROOT = os.environ['STAGING_LIBDIR'] + TCL_ROOT = None + ++ + # FIXME: add mechanism to explicitly *disable* the use of a library + + # -------------------------------------------------------------------- +@@ -175,15 +176,6 @@ + add_directory(include_dirs, include_root) + + # +- # add standard directories +- +- 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/recipes/python/python-imaging_1.1.6.bb b/recipes/python/python-imaging_1.1.6.bb new file mode 100644 index 0000000000..03e0330e1c --- /dev/null +++ b/recipes/python/python-imaging_1.1.6.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 = "ml1" + +SRC_URI = "http://effbot.org/downloads/Imaging-${PV}.tar.gz \ + file://path.patch;patch=1" +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/recipes/python/python-imdbpy_3.9.bb b/recipes/python/python-imdbpy_3.9.bb new file mode 100644 index 0000000000..72d30fb89b --- /dev/null +++ b/recipes/python/python-imdbpy_3.9.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "IMDbPY is a Python package useful to retrieve and manage the data of the IMDb movie database." +SECTION = "devel/python" +HOMEPAGE = "http://imdbpy.sourceforge.net/" +PRIORITY = "optional" +LICENSE = "GPL" +SRCNAME = "IMDbPY" +PR = "ml0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/imdbpy/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/imdb/parser/common/.debug" diff --git a/recipes/python/python-inotify_0.1.0.bb b/recipes/python/python-inotify_0.1.0.bb new file mode 100644 index 0000000000..13031d31a7 --- /dev/null +++ b/recipes/python/python-inotify_0.1.0.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "Python Linux Inotify Wrapper" +SECTION = "devel/python" +HOMEPAGE = "http://rudd-o.com/projects/python-inotify/" +LICENSE = "GPL" +PR = "ml1" + +SRC_URI = "http://rudd-o.com/wp-content/uploads/projects/files/python-inotify/python-inotify-${PV}.tar.gz" + +inherit distutils + diff --git a/recipes/python/python-irclib_0.4.6.bb b/recipes/python/python-irclib_0.4.6.bb new file mode 100644 index 0000000000..e416156e92 --- /dev/null +++ b/recipes/python/python-irclib_0.4.6.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "Python IRC (Internet Relay Chat) Support Library" +SECTION = "devel/python" +HOMEPAGE = "http://python-irclib.sourceforge.net/" +PRIORITY = "optional" +LICENSE = "LGPL" +PR = "ml1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/python-irclib/python-irclib-${PV}.tar.gz" + +inherit distutils + diff --git a/recipes/python/python-libgmail_0.1.11.bb b/recipes/python/python-libgmail_0.1.11.bb new file mode 100644 index 0000000000..b0fcb1f83f --- /dev/null +++ b/recipes/python/python-libgmail_0.1.11.bb @@ -0,0 +1,31 @@ +DESCRIPTION = "Python Bindings for Google's Gmail Service" +SECTION = "devel/python" +HOMEPAGE = "http://libgmail.sourceforge.net/" +PRIORITY = "optional" +LICENSE = "GPL" +SRCNAME = "libgmail" +PR = "ml0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils-base + +do_install() { + install -d ${D}${libdir}/${PYTHON_DIR} + for file in *.py + do + install -m 0755 ${file} ${D}${libdir}/${PYTHON_DIR} + done +} + +RDEPENDS = "\ + python-core \ + python-netclient \ + python-email \ + python-mime \ + python-pprint \ + python-re \ + python-pickle \ +" + diff --git a/recipes/python/python-logilab-common/fix-future-in-setup.patch b/recipes/python/python-logilab-common/fix-future-in-setup.patch new file mode 100644 index 0000000000..1abde49bef --- /dev/null +++ b/recipes/python/python-logilab-common/fix-future-in-setup.patch @@ -0,0 +1,16 @@ +Index: common-0.9.3/setup.py +=================================================================== +--- common-0.9.3.orig/setup.py ++++ common-0.9.3/setup.py +@@ -17,9 +17,10 @@ + # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + """ Generic Setup script, takes package info from __pkginfo__.py file """ + ++from __future__ import nested_scopes ++ + __revision__ = '$Id: setup.py,v 1.23 2004/05/27 12:07:23 syt Exp $' + +-from __future__ import nested_scopes + import os + import sys + import shutil diff --git a/recipes/python/python-logilab-common_0.37.1.bb b/recipes/python/python-logilab-common_0.37.1.bb new file mode 100644 index 0000000000..1f8c41e883 --- /dev/null +++ b/recipes/python/python-logilab-common_0.37.1.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "This package contains some modules used by different \ +projects released by Logilab, including abstract syntax \ +tree manipulation tools, database helper functions, HTML generation, \ +command line argument parsing, logging, and process daemonization." +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +SRCNAME = "logilab-common" +PR = "ml0" + +SRC_URI = "ftp://ftp.logilab.fr/pub/common/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-lxml/use-pkgconfig-to-detect.patch b/recipes/python/python-lxml/use-pkgconfig-to-detect.patch new file mode 100644 index 0000000000..b79f1b2300 --- /dev/null +++ b/recipes/python/python-lxml/use-pkgconfig-to-detect.patch @@ -0,0 +1,31 @@ +Index: lxml-1.3.3/setupinfo.py +=================================================================== +--- lxml-1.3.3.orig/setupinfo.py 2007-08-20 22:39:09.000000000 +0000 ++++ lxml-1.3.3/setupinfo.py 2007-08-20 22:39:46.000000000 +0000 +@@ -86,7 +86,7 @@ + return static_library_dirs + # filter them from xslt-config --libs + result = [] +- possible_library_dirs = flags('xslt-config --libs') ++ possible_library_dirs = flags('pkg-config libxslt --libs') + for possible_library_dir in possible_library_dirs: + if possible_library_dir.startswith('-L'): + result.append(possible_library_dir[2:]) +@@ -100,7 +100,7 @@ + return static_include_dirs + # filter them from xslt-config --cflags + result = [] +- possible_include_dirs = flags('xslt-config --cflags') ++ possible_include_dirs = flags('pkg-config libxslt --cflags') + for possible_include_dir in possible_include_dirs: + if possible_include_dir.startswith('-I'): + result.append(possible_include_dir[2:]) +@@ -119,7 +119,7 @@ + return result + + # anything from xslt-config --cflags that doesn't start with -I +- possible_cflags = flags('xslt-config --cflags') ++ possible_cflags = flags('pkg-config libxslt --cflags') + for possible_cflag in possible_cflags: + if not possible_cflag.startswith('-I'): + result.append(possible_cflag) diff --git a/recipes/python/python-m2crypto/install.patch b/recipes/python/python-m2crypto/install.patch new file mode 100644 index 0000000000..6c70ccf516 --- /dev/null +++ b/recipes/python/python-m2crypto/install.patch @@ -0,0 +1,24 @@ +Index: m2crypto-0.18.2/setup.py +=================================================================== +--- m2crypto-0.18.2.orig/setup.py ++++ m2crypto-0.18.2/setup.py +@@ -38,7 +38,7 @@ class _M2CryptoBuildExt(build_ext.build_ + self.openssl = 'c:\\pkg' + else: + self.libraries = ['ssl', 'crypto'] +- self.openssl = '/usr' ++ self.openssl = os.environ.get( "STAGING_DIR" ) + + + def finalize_options(self): +@@ -47,8 +47,8 @@ class _M2CryptoBuildExt(build_ext.build_ + + build_ext.build_ext.finalize_options(self) + +- opensslIncludeDir = os.path.join(self.openssl, 'include') +- opensslLibraryDir = os.path.join(self.openssl, 'lib') ++ opensslIncludeDir = os.environ.get( "STAGING_INCDIR" ) ++ opensslLibraryDir = os.environ.get( "STAGING_LIBDIR" ) + + self.swig_opts = ['-I%s' % i for i in self.include_dirs + \ + [opensslIncludeDir]] diff --git a/recipes/python/python-m2crypto_0.18.2.bb b/recipes/python/python-m2crypto_0.18.2.bb new file mode 100644 index 0000000000..fb11aa0890 --- /dev/null +++ b/recipes/python/python-m2crypto_0.18.2.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "A Python crypto and SSL toolkit" +SECTION = "devel/python" +PRIORITY = "optional" +DEPENDS = "openssl swig-native" +LICENSE = "BSD" +SRCNAME = "M2Crypto" +PR = "ml1" + +SRC_URI = "\ + http://chandlerproject.org/pub/Projects/MeTooCrypto/m2crypto-${PV}.tar.gz \ + file://install.patch;patch=1 \ +" +S = "${WORKDIR}/m2crypto-0.18.2" + +inherit setuptools + +export STAGING_DIR +export STAGING_INCDIR +export STAGING_LIBDIR diff --git a/recipes/python/python-mad_0.6.bb b/recipes/python/python-mad_0.6.bb new file mode 100644 index 0000000000..7ae43779e9 --- /dev/null +++ b/recipes/python/python-mad_0.6.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "Python libmad Bindings" +SECTION = "devel/python" +HOMEPAGE = "http://spacepants.org/src/pymad/" +PRIORITY = "optional" +LICENSE = "LGPL" +DEPENDS = "libmad" +SRCNAME = "pymad" +PR = "ml1" + +SRC_URI = "http://spacepants.org/src/pymad/download/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +do_configure_prepend() { + touch Setup + echo "endian = little" >>Setup # FIXME, not always true + echo "mad_libs = mad" >>Setup + echo "mad_lib_dir = ${STAGING_LIBDIR}" >>Setup + echo "mad_include_dir = ${STAGING_INCDIR}" >>Setup +} diff --git a/recipes/python/python-mako_0.2.2.bb b/recipes/python/python-mako_0.2.2.bb new file mode 100644 index 0000000000..6b1b9595af --- /dev/null +++ b/recipes/python/python-mako_0.2.2.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "A super-fast templating language that borrows the best ideas from the existing templating languages" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "MIT" +HOMEPAGE = "http://www.makotemplates.org/" +SRCNAME = "Mako" +PR = "ml1" + +SRC_URI = "http://pypi.python.org/packages/source/M/Mako/Mako-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit setuptools diff --git a/recipes/python/python-mysqldb/mysqlpath.patch b/recipes/python/python-mysqldb/mysqlpath.patch new file mode 100644 index 0000000000..3f471a1703 --- /dev/null +++ b/recipes/python/python-mysqldb/mysqlpath.patch @@ -0,0 +1,19 @@ +Index: MySQL-python-1.2.1_p2/_mysql.c +=================================================================== +--- MySQL-python-1.2.1_p2.orig/_mysql.c 2006-05-31 12:07:36.000000000 +0200 ++++ MySQL-python-1.2.1_p2/_mysql.c 2006-05-31 12:08:25.000000000 +0200 +@@ -36,10 +36,10 @@ + #endif + + #include "structmember.h" +-#include "mysql.h" +-#include "my_config.h" +-#include "mysqld_error.h" +-#include "errmsg.h" ++#include "mysql/mysql.h" ++#include "mysql/my_config.h" ++#include "mysql/mysqld_error.h" ++#include "mysql/errmsg.h" + + #if PY_VERSION_HEX < 0x02020000 + # define MyTuple_Resize(t,n,d) _PyTuple_Resize(t, n, d) diff --git a/recipes/python/python-mysqldb/site.patch b/recipes/python/python-mysqldb/site.patch new file mode 100644 index 0000000000..c2d1346767 --- /dev/null +++ b/recipes/python/python-mysqldb/site.patch @@ -0,0 +1,22 @@ +Index: MySQL-python-1.2.1_p2/site.cfg +=================================================================== +--- MySQL-python-1.2.1_p2.orig/site.cfg 2009-01-24 16:36:21.000000000 +0100 ++++ MySQL-python-1.2.1_p2/site.cfg 2009-01-24 16:37:07.000000000 +0100 +@@ -6,7 +6,7 @@ + + [options] + embedded = False +-threadsafe = True ++threadsafe = False + static = False + + # Use the compiler section to add additional options for the extension build. +@@ -26,3 +26,8 @@ + # advapi32 + #extra_compile_args: + #extra_objects: ++ ++# Without the following line, bitbake would fail with: ++# CROSS COMPILE Badness: /usr/include in INCLUDEPATH: /usr/include/mysql ++include_dirs: ++ diff --git a/recipes/python/python-mysqldb_1.2.1.bb b/recipes/python/python-mysqldb_1.2.1.bb new file mode 100644 index 0000000000..9a9ca0fe56 --- /dev/null +++ b/recipes/python/python-mysqldb_1.2.1.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Python interface to MySQL" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "LGPL" +DEPENDS = "mysql" +SRCNAME = "MySQL-python" + +inherit distutils + +SRC_URI = "\ + ${SOURCEFORGE_MIRROR}/mysql-python/MySQL-python-${PV}_p2.tar.gz \ + file://mysqlpath.patch;patch=1 \ + file://site.patch;patch=1 \ +" +S = "${WORKDIR}/${SRCNAME}-${PV}_p2" + +do_install_append() { + install -d ${D}${datadir}/doc/${PN}/ + install -m 0644 ${S}/doc/*.txt ${D}${datadir}/doc/${PN}/ +} diff --git a/recipes/python/python-native-2.6.1/00-fix-bindir-libdir-for-cross.patch b/recipes/python/python-native-2.6.1/00-fix-bindir-libdir-for-cross.patch new file mode 100644 index 0000000000..2559e3a0e4 --- /dev/null +++ b/recipes/python/python-native-2.6.1/00-fix-bindir-libdir-for-cross.patch @@ -0,0 +1,20 @@ +# $(exec_prefix) points to the wrong directory, when installing +# a cross-build. @bindir@ and @libdir@ works better and doesn't +# affect the native build. +# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de> + +Index: Python-2.6.1/Makefile.pre.in +=================================================================== +--- Python-2.6.1.orig/Makefile.pre.in ++++ Python-2.6.1/Makefile.pre.in +@@ -86,8 +86,8 @@ exec_prefix= @exec_prefix@ + datarootdir= @datarootdir@ + + # Expanded directories +-BINDIR= $(exec_prefix)/bin +-LIBDIR= $(exec_prefix)/lib ++BINDIR= @bindir@ ++LIBDIR= @libdir@ + MANDIR= @mandir@ + INCLUDEDIR= @includedir@ + CONFINCLUDEDIR= $(exec_prefix)/include diff --git a/recipes/python/python-native-2.6.1/04-default-is-optimized.patch b/recipes/python/python-native-2.6.1/04-default-is-optimized.patch new file mode 100644 index 0000000000..5131e0ba69 --- /dev/null +++ b/recipes/python/python-native-2.6.1/04-default-is-optimized.patch @@ -0,0 +1,18 @@ +# When compiling for an embedded system, we need every bit of +# performance we can get. default to optimized with the option +# of opt-out. +# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de> + +Index: Python-2.6.1/Python/compile.c +=================================================================== +--- Python-2.6.1.orig/Python/compile.c ++++ Python-2.6.1/Python/compile.c +@@ -32,7 +32,7 @@ + #include "symtable.h" + #include "opcode.h" + +-int Py_OptimizeFlag = 0; ++int Py_OptimizeFlag = 1; + + #define DEFAULT_BLOCK_SIZE 16 + #define DEFAULT_BLOCKS 8 diff --git a/recipes/python/python-native-2.6.1/10-distutils-fix-swig-parameter.patch b/recipes/python/python-native-2.6.1/10-distutils-fix-swig-parameter.patch new file mode 100644 index 0000000000..f5e852a118 --- /dev/null +++ b/recipes/python/python-native-2.6.1/10-distutils-fix-swig-parameter.patch @@ -0,0 +1,16 @@ +# Some versions of SWIG do not use the extension parameter. +# Make it optional. +# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de> +Index: Python-2.6.1/Lib/distutils/command/build_ext.py +=================================================================== +--- Python-2.6.1.orig/Lib/distutils/command/build_ext.py ++++ Python-2.6.1/Lib/distutils/command/build_ext.py +@@ -566,7 +566,7 @@ class build_ext (Command): + target_lang=language) + + +- def swig_sources (self, sources, extension): ++ def swig_sources (self, sources, extension=None): + + """Walk the list of source files in 'sources', looking for SWIG + interface (.i) files. Run SWIG on all that are found, and diff --git a/recipes/python/python-native-2.6.1/11-distutils-never-modify-shebang-line.patch b/recipes/python/python-native-2.6.1/11-distutils-never-modify-shebang-line.patch new file mode 100644 index 0000000000..8354e266fa --- /dev/null +++ b/recipes/python/python-native-2.6.1/11-distutils-never-modify-shebang-line.patch @@ -0,0 +1,18 @@ +# Don't modify the she-bang line for a cross-build. +# Otherwise it points to our hostpython (which we do not want) +# +# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de> + +Index: Python-2.6.1/Lib/distutils/command/build_scripts.py +=================================================================== +--- Python-2.6.1.orig/Lib/distutils/command/build_scripts.py ++++ Python-2.6.1/Lib/distutils/command/build_scripts.py +@@ -87,7 +87,7 @@ class build_scripts (Command): + continue + + match = first_line_re.match(first_line) +- if match: ++ if False: #match: + adjust = 1 + post_interp = match.group(1) or '' + diff --git a/recipes/python/python-native-2.6.1/12-distutils-prefix-is-inside-staging-area.patch b/recipes/python/python-native-2.6.1/12-distutils-prefix-is-inside-staging-area.patch new file mode 100644 index 0000000000..aa4393679f --- /dev/null +++ b/recipes/python/python-native-2.6.1/12-distutils-prefix-is-inside-staging-area.patch @@ -0,0 +1,60 @@ +# The proper prefix is inside our staging area. +# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de> + +Index: Python-2.6.1/Lib/distutils/sysconfig.py +=================================================================== +--- Python-2.6.1.orig/Lib/distutils/sysconfig.py ++++ Python-2.6.1/Lib/distutils/sysconfig.py +@@ -19,8 +19,8 @@ import sys + from distutils.errors import DistutilsPlatformError + + # These are needed in a couple of spots, so just compute them once. +-PREFIX = os.path.normpath(sys.prefix) +-EXEC_PREFIX = os.path.normpath(sys.exec_prefix) ++PREFIX = os.path.normpath(sys.prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") ) ++EXEC_PREFIX = os.path.normpath(sys.exec_prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") ) + + # Path to the base directory of the project. On Windows the binary may + # live in project/PCBuild9. If we're dealing with an x64 Windows build, +@@ -70,7 +70,10 @@ def get_python_inc(plat_specific=0, pref + sys.exec_prefix -- i.e., ignore 'plat_specific'. + """ + if prefix is None: +- prefix = plat_specific and EXEC_PREFIX or PREFIX ++ if plat_specific: ++ prefix = plat_specific and os.environ['STAGING_INCDIR'].rstrip('include') ++ else: ++ prefix = plat_specific and EXEC_PREFIX or PREFIX + if os.name == "posix": + if python_build: + base = os.path.dirname(os.path.abspath(sys.executable)) +@@ -112,7 +115,10 @@ def get_python_lib(plat_specific=0, stan + sys.exec_prefix -- i.e., ignore 'plat_specific'. + """ + if prefix is None: +- prefix = plat_specific and EXEC_PREFIX or PREFIX ++ if plat_specific: ++ prefix = plat_specific and os.environ['STAGING_LIBDIR'].rstrip('lib') ++ else: ++ prefix = plat_specific and EXEC_PREFIX or PREFIX + + if os.name == "posix": + libpython = os.path.join(prefix, +@@ -218,7 +218,7 @@ def get_config_h_filename(): + else: + # The name of the config.h file changed in 2.2 + config_h = 'pyconfig.h' +- return os.path.join(inc_dir, config_h) ++ return os.path.join(inc_dir, config_h).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") ) + + + def get_makefile_filename(): +@@ -226,7 +226,7 @@ def get_makefile_filename(): + if python_build: + return os.path.join(os.path.dirname(sys.executable), "Makefile") + lib_dir = get_python_lib(plat_specific=1, standard_lib=1) +- return os.path.join(lib_dir, "config", "Makefile") ++ return os.path.join(lib_dir, "config", "Makefile").replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") ) + + + def parse_config_h(fp, g=None): diff --git a/recipes/python/python-native-2.6.1/sitecustomize.py b/recipes/python/python-native-2.6.1/sitecustomize.py new file mode 100644 index 0000000000..273901898a --- /dev/null +++ b/recipes/python/python-native-2.6.1/sitecustomize.py @@ -0,0 +1,45 @@ +# OpenEmbedded sitecustomize.py (C) 2002-2008 Michael 'Mickey' Lauer <mlauer@vanille-media.de> +# GPLv2 or later +# Version: 20081123 +# Features: +# * set proper default encoding +# * enable readline completion in the interactive interpreter +# * load command line history on startup +# * save command line history on exit + +import os + +def __exithandler(): + try: + readline.write_history_file( "%s/.python-history" % os.getenv( "HOME", "/tmp" ) ) + except IOError: + pass + +def __registerExitHandler(): + import atexit + atexit.register( __exithandler ) + +def __enableReadlineSupport(): + readline.set_history_length( 1000 ) + readline.parse_and_bind( "tab: complete" ) + try: + readline.read_history_file( "%s/.python-history" % os.getenv( "HOME", "/tmp" ) ) + except IOError: + pass + +def __enableDefaultEncoding(): + import sys + try: + sys.setdefaultencoding( "utf8" ) + except LookupError: + pass + +import sys +try: + import rlcompleter, readline +except ImportError: + pass +else: + __enableDefaultEncoding() + __registerExitHandler() + __enableReadlineSupport() diff --git a/recipes/python/python-native_2.6.1.bb b/recipes/python/python-native_2.6.1.bb new file mode 100644 index 0000000000..3ae48285b1 --- /dev/null +++ b/recipes/python/python-native_2.6.1.bb @@ -0,0 +1,28 @@ +require python.inc +DEPENDS = "openssl-native bzip2-full-native" + +SRC_URI = "\ + http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2 \ + file://00-fix-bindir-libdir-for-cross.patch;patch=1 \ + file://04-default-is-optimized.patch;patch=1 \ + file://10-distutils-fix-swig-parameter.patch;patch=1 \ + file://11-distutils-never-modify-shebang-line.patch;patch=1 \ + file://12-distutils-prefix-is-inside-staging-area.patch;patch=1 \ +" +S = "${WORKDIR}/Python-${PV}" + +inherit native + +prefix = "${STAGING_DIR_NATIVE}/${layout_prefix}" +exec_prefix = "${STAGING_DIR_NATIVE}/${layout_exec_prefix}" + +EXTRA_OEMAKE = '\ + BUILD_SYS="" \ + HOST_SYS="" \ + STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} \ + STAGING_INCDIR=${STAGING_INCDIR_NATIVE} \ +' + +do_stage_append() { + install -m 0755 Parser/pgen ${STAGING_BINDIR_NATIVE}/pgen +} diff --git a/recipes/python/python-netfilter_0.5.5.bb b/recipes/python/python-netfilter_0.5.5.bb new file mode 100644 index 0000000000..17f3aaada0 --- /dev/null +++ b/recipes/python/python-netfilter_0.5.5.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Python module to manage netfilter rules" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +RDEPENDS = "iptables iptables-utils python-logging python-shell python-subprocess" +SRCNAME = "python-netfilter" +PR = "ml0" + +SRC_URI = "http://opensource.bolloretelecom.eu/files/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-nevow_0.9.32.bb b/recipes/python/python-nevow_0.9.32.bb new file mode 100644 index 0000000000..155157c517 --- /dev/null +++ b/recipes/python/python-nevow_0.9.32.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "Nevow is a web application construction kit written in Python" +LICENSE = "MIT" + +REALPN = "Nevow" + +require divmod.inc + +FILES_${PN} += "${datadir}" +DEPENDS += "python-twisted-native" + diff --git a/recipes/python/python-numarray_1.1.1.bb b/recipes/python/python-numarray_1.1.1.bb new file mode 100644 index 0000000000..4e02294ebc --- /dev/null +++ b/recipes/python/python-numarray_1.1.1.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "Next Generation sophisticated Numeric Processing Package for Python" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "PYRAF" +SRCNAME = "numarray" +PR = "ml1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/numpy/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/numarray/examples/*/.debug" diff --git a/recipes/python/python-numeric/no-lapack.patch b/recipes/python/python-numeric/no-lapack.patch new file mode 100644 index 0000000000..c1916b8b9f --- /dev/null +++ b/recipes/python/python-numeric/no-lapack.patch @@ -0,0 +1,33 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- Numeric-23.7/setup.py~nolapack ++++ Numeric-23.7/setup.py +@@ -32,7 +32,7 @@ + mathlibs = [] + + # delete all but the first one in this list if using your own LAPACK/BLAS +-sourcelist = [os.path.join('Src', 'lapack_litemodule.c'), ++sourcelist = [ + #os.path.join('Src', 'blas_lite.c'), + #os.path.join('Src', 'f2c_lite.c'), + #os.path.join('Src', 'zlapack_lite.c'), +@@ -40,12 +40,12 @@ + ] + # set these to use your own BLAS; + +-library_dirs_list = ['/usr/lib/atlas'] +-libraries_list = ['lapack', 'cblas', 'f77blas', 'atlas', 'g2c'] ++library_dirs_list = [] ++libraries_list = [] + + # set to true (1), if you also want BLAS optimized matrixmultiply/dot/innerproduct +-use_dotblas = 1 +-include_dirs = ['/usr/include/atlas'] ++use_dotblas = 0 ++include_dirs = [] + # You may need to set this to find cblas.h + # e.g. on UNIX using ATLAS this should be ['/usr/include/atlas'] + extra_link_args = [] diff --git a/recipes/python/python-numeric_23.7.bb b/recipes/python/python-numeric_23.7.bb new file mode 100644 index 0000000000..eab7371a1c --- /dev/null +++ b/recipes/python/python-numeric_23.7.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "A sophisticated Numeric Processing Package for Python" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "PSF" +PR = "ml1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/numpy/Numeric-${PV}.tar.gz \ + file://no-lapack.patch;patch=1" +S = "${WORKDIR}/Numeric-${PV}" + +inherit distutils + +do_stage() { + cp -pPR Include/Numeric ${STAGING_INCDIR} +} + diff --git a/recipes/python/python-numpy/arm/config.h b/recipes/python/python-numpy/arm/config.h new file mode 100644 index 0000000000..17ef186d56 --- /dev/null +++ b/recipes/python/python-numpy/arm/config.h @@ -0,0 +1,21 @@ +/* ./src.linux-i686-2.5/numpy/core/include/numpy/config.h */ +/* #define SIZEOF_SHORT 2 */ +/* #define SIZEOF_INT 4 */ +/* #define SIZEOF_LONG 4 */ +/* #define SIZEOF_FLOAT 4 */ +/* #define SIZEOF_DOUBLE 8 */ +#define SIZEOF_LONG_DOUBLE 12 +#define SIZEOF_PY_INTPTR_T 4 +/* #define SIZEOF_LONG_LONG 8 */ +#define SIZEOF_PY_LONG_LONG 8 +/* #define CHAR_BIT 8 */ +#define MATHLIB m +#define HAVE_FLOAT_FUNCS +#define HAVE_LOG1P +#define HAVE_EXPM1 +#define HAVE_INVERSE_HYPERBOLIC +#define HAVE_INVERSE_HYPERBOLIC_FLOAT +#define HAVE_ISNAN +#define HAVE_ISINF +#define HAVE_RINT + diff --git a/recipes/python/python-numpy/arm/numpyconfig.h b/recipes/python/python-numpy/arm/numpyconfig.h new file mode 100644 index 0000000000..c4bf6547f0 --- /dev/null +++ b/recipes/python/python-numpy/arm/numpyconfig.h @@ -0,0 +1,17 @@ +/* cat ./src.linux-i686-2.5/numpy/core/include/numpy/numpyconfig.h */ +/* + * * This file is generated by numpy/core/setup.pyc. DO NOT EDIT + * */ +#define NPY_SIZEOF_SHORT 2 +#define NPY_SIZEOF_INT 4 +#define NPY_SIZEOF_LONG 4 +#define NPY_SIZEOF_FLOAT 4 +#define NPY_SIZEOF_DOUBLE 8 +#define NPY_SIZEOF_LONGDOUBLE 12 +#define NPY_SIZEOF_PY_INTPTR_T 4 +#define NPY_NO_SMP 0 + +#define NPY_SIZEOF_LONGLONG 8 +#define NPY_SIZEOF_PY_LONG_LONG 8 +/* #define CHAR_BIT 8 */ + diff --git a/recipes/python/python-numpy/trycompile.diff b/recipes/python/python-numpy/trycompile.diff new file mode 100644 index 0000000000..3ab3d72f2c --- /dev/null +++ b/recipes/python/python-numpy/trycompile.diff @@ -0,0 +1,33 @@ +--- /tmp/setup.py 2008-09-01 10:37:44.000000000 +0200 ++++ numpy-1.1.1/numpy/core/setup.py 2008-09-01 10:38:20.373198000 +0200 +@@ -80,8 +80,7 @@ + raise SystemError,\ + "Non-existing %s. Perhaps you need to install"\ + " python-dev|python-devel." % (python_h) +- result = config_cmd.try_run(tc,include_dirs=[python_include], +- library_dirs = default_lib_dirs) ++ result = config_cmd.try_compile(tc) + if not result: + raise SystemError,"Failed to test configuration. "\ + "See previous error messages for more information." +@@ -95,7 +94,7 @@ + if mathlib: + mathlibs_choices.insert(0,mathlib.split(',')) + for libs in mathlibs_choices: +- if config_cmd.try_run(tc,libraries=libs): ++ if config_cmd.try_compile(tc): + mathlibs = libs + break + else: +@@ -180,10 +179,7 @@ + " python-dev|python-devel." % (python_h) + + config.numpy_include_dirs +- result = config_cmd.try_run(testcode, +- include_dirs = [python_include] + \ +- config.numpy_include_dirs, +- library_dirs = default_lib_dirs) ++ result = config_cmd.try_compile(testcode) + + if not result: + raise SystemError,"Failed to generate numpy configuration. "\ diff --git a/recipes/python/python-numpy/unbreak-assumptions.diff b/recipes/python/python-numpy/unbreak-assumptions.diff new file mode 100644 index 0000000000..c5b448167f --- /dev/null +++ b/recipes/python/python-numpy/unbreak-assumptions.diff @@ -0,0 +1,16 @@ +--- /tmp/system_info.py 2008-08-22 00:38:16.000000000 +0200 ++++ numpy-1.1.1/numpy/distutils/system_info.py 2008-08-22 00:40:33.013198000 +0200 +@@ -137,11 +137,8 @@ + default_x11_lib_dirs = [] + default_x11_include_dirs = [] + else: +- default_lib_dirs = ['/usr/local/lib', '/opt/lib', '/usr/lib', +- '/opt/local/lib', '/sw/lib'] +- default_include_dirs = ['/usr/local/include', +- '/opt/include', '/usr/include', +- '/opt/local/include', '/sw/include'] ++ default_lib_dirs = ['/non-existant-dir'] ++ default_include_dirs = ['non-existant-dir'] + default_src_dirs = ['.','/usr/local/src', '/opt/src','/sw/src'] + + try: diff --git a/recipes/python/python-numpy_1.1.1.bb b/recipes/python/python-numpy_1.1.1.bb new file mode 100644 index 0000000000..157dadadaf --- /dev/null +++ b/recipes/python/python-numpy_1.1.1.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "A sophisticated Numeric Processing Package for Python" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "PSF" +PR = "ml0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/numpy/numpy-${PV}.tar.gz \ + file://unbreak-assumptions.diff;patch=1 \ + file://trycompile.diff;patch=1 \ + file://config.h \ + file://numpyconfig.h \ + " + +S = "${WORKDIR}/numpy-${PV}" + +inherit distutils + +# Make the build fail and replace *config.h with proper one +# This is a ugly, ugly hack - Koen +do_compile_prepend() { + BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ + ${STAGING_BINDIR_NATIVE}/python setup.py build ${DISTUTILS_BUILD_ARGS} || \ + true + cp ${WORKDIR}/*config.h ${S}/build/$(ls ${S}/build | grep src)/numpy/core/include/numpy/ +} + + diff --git a/recipes/python/python-ogg_1.3.bb b/recipes/python/python-ogg_1.3.bb new file mode 100644 index 0000000000..d2d1d9e2ba --- /dev/null +++ b/recipes/python/python-ogg_1.3.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "Python Ogg Vorbis Bindings" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "LGPL" +DEPENDS = "libogg" +SRCNAME = "pyogg" +PR = "r1" + +SRC_URI = "http://www.andrewchatham.com/pyogg/download/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +do_configure_prepend() { + touch Setup + echo "ogg_libs = ogg" >>Setup + echo "ogg_lib_dir = ${STAGING_LIBDIR}" >>Setup + echo "ogg_include_dir = ${STAGING_INCDIR}" >>Setup +} + +do_stage() { + install -d ${STAGING_INCDIR}/pyogg + install -m 0644 include/pyogg/pyogg.h ${STAGING_INCDIR}/pyogg/pyogg.h +} diff --git a/recipes/python/python-opendir/opendir.pyx b/recipes/python/python-opendir/opendir.pyx new file mode 100644 index 0000000000..1ee81f7382 --- /dev/null +++ b/recipes/python/python-opendir/opendir.pyx @@ -0,0 +1,149 @@ +############################################################## +# +# opendir.pyx - A class exposing the functionality of +# =========== the opendir() family of C libary functions. +# +# By Gregory Ewing +# greg.ewing@canterbury.ac.nz +# +# This software and derivative works created from it +# may be used and redistributed without restriction. +# +############################################################## + +cdef extern from "sys/errno.h": + int errno + +cdef extern from "stdio.h": + char *strerror(int) + +cdef extern from "dirent.h": + ctypedef struct DIR + struct dirent: + int d_namlen + char d_name[1] + DIR *c_opendir "opendir" (char *) + int readdir_r(DIR *, dirent *, dirent **) + long telldir(DIR *) + void seekdir(DIR *, long) + void rewinddir(DIR *) + int closedir(DIR *) + int dirfd(DIR *) + +#------------------------------------------------------------------ + +cdef class opendir: + """opendir(pathname) --> an open directory object + + Opens a directory and provides incremental access to + the filenames it contains. May be used as a file-like + object or as an iterator. + + When used as a file-like object, each call to read() + returns one filename, or an empty string when the end + of the directory is reached. The close() method should + be called when finished with the directory. + + The close() method should also be called when used as + an iterator and iteration is stopped prematurely. If + iteration proceeds to completion, the directory is + closed automatically.""" + + cdef DIR *dir + + def __cinit__(self, char *path): + self.dir = c_opendir(path) + if not self.dir: + raise IOError(errno, "%s: '%s'" % (strerror(errno), path)) + + def __dealloc__(self): + if self.dir: + closedir(self.dir) + + def read(self): + """read() --> filename or empty string + + Returns the next filename from the directory, or an empty + string if the end of the directory has been reached.""" + + cdef dirent entry, *result + check_open(self) + if readdir_r(self.dir, &entry, &result) < 0: + raise IOError(errno) + if result: + return entry.d_name + else: + return "" + + def tell(self): + """tell() --> position + + Returns a value representing the current position in the + directory, suitable for passing to tell(). Only valid for + this directory object as long as it remains open.""" + + check_open(self) + return telldir(self.dir) + + def seek(self, long pos): + """seek(position) + + Returns the directory to the specified position, which + should be a value previously returned by tell().""" + + check_open(self) + seekdir(self.dir, pos) + + def rewind(self): + """rewind() + + Resets the position to the beginning of the directory.""" + + check_open(self) + rewinddir(self.dir) + + def close(self): + """close() + + Closes the directory and frees the underlying file descriptor.""" + + if self.dir: + if closedir(self.dir) < 0: + raise IOError(errno) + self.dir = NULL + +# MaxOSX doesn't seem to have dirfd, despite what the +# man page says. :-( +# +# def fileno(self): +# """fileno() --> file descriptor +# +# Returns the file descriptor associated with the open directory.""" +# +# check_open(self) +# return dirfd(self.dir) + + def __iter__(self): + return self + + def __next__(self): + """next() --> filename + + Returns the next filename from the directory. If the end of the + directory has been reached, closes the directory and raises + StopIteration.""" + + if self.dir: + result = self.read() + if result: + return result + self.close() + raise StopIteration + +#------------------------------------------------------------------ + +cdef int check_open(opendir d) except -1: + if not d.dir: + raise ValueError("Directory is closed") + return 0 + diff --git a/recipes/python/python-opendir/setup.py b/recipes/python/python-opendir/setup.py new file mode 100644 index 0000000000..d76b22c95a --- /dev/null +++ b/recipes/python/python-opendir/setup.py @@ -0,0 +1,25 @@ +from distutils.core import setup +from distutils.extension import Extension +from Cython.Distutils import build_ext + +setup( + name = 'opendir', + version = '0.0.1', + author = 'Gregory Ewing', + author_email = 'greg ewing at canterbury ac nz', + maintainer = 'Johannes "josch" Schauer', + maintainer_email = 'j schauer at email de', + description = 'Implements POSIX opendir', + classifiers = [ + 'Development Status :: 4 - Beta', + 'Intended Audience :: Developers', + 'Operating System :: POSIX', + 'Programming Language :: Pyrex', + 'Topic :: Software Development :: Libraries :: Python Modules', + 'Topic :: System :: Filesystems' + ], + ext_modules=[ + Extension("opendir", ["opendir.pyx"]), + ], + cmdclass = {'build_ext': build_ext} +) diff --git a/recipes/python/python-opendir_1.0.bb b/recipes/python/python-opendir_1.0.bb new file mode 100644 index 0000000000..324f5aca2a --- /dev/null +++ b/recipes/python/python-opendir_1.0.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "POSIX opendir support for Python" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "PD" +HOMEPAGE = "http://rabenfrost.net/mokopedia/opendir/" +DEPENDS = "python-pyrex-native python-cython-native" +PR = "ml1" + +SRC_URI = "\ + file://opendir.pyx \ + file://setup.py \ +" +S = "${WORKDIR}" + +inherit distutils diff --git a/recipes/python/python-pexpect_2.3.bb b/recipes/python/python-pexpect_2.3.bb new file mode 100644 index 0000000000..2195d8d5eb --- /dev/null +++ b/recipes/python/python-pexpect_2.3.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "A Pure Python Expect like Module for Python" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "PSF" +SRCNAME = "pexpect" +PR = "ml0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +RDEPENDS = "\ + python-core \ + python-io \ + python-terminal \ + python-resource \ + python-fcntl \ +" + diff --git a/recipes/python/python-psyco_1.6.bb b/recipes/python/python-psyco_1.6.bb new file mode 100644 index 0000000000..5c47e6971d --- /dev/null +++ b/recipes/python/python-psyco_1.6.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Psyco lets you run your existing Python software much faster, with no change in your source." +HOMEPAGE = "http://psyco.sourceforge.net" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "PSF" +RDEPENDS = "python-core" +SRCNAME = "psyco" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${SRCNAME}/${SRCNAME}-${PV}-src.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +COMPATIBLE_HOST = 'i.86.*-linux' + +inherit distutils diff --git a/recipes/python/python-ptrace_0.5.bb b/recipes/python/python-ptrace_0.5.bb new file mode 100644 index 0000000000..55ec70f9dd --- /dev/null +++ b/recipes/python/python-ptrace_0.5.bb @@ -0,0 +1,9 @@ +DESCRIPTION = "python-ptrace is a debugger using ptrace." +HOMEPAGE = "http://python-ptrace.hachoir.org/trac" +SECTION = "devel/python" +LICENSE = "GPLv2" +PR = "ml0" + +SRC_URI = "http://pypi.python.org/packages/source/p/python-ptrace/python-ptrace-${PV}.tar.gz" + +inherit distutils diff --git a/recipes/python/python-pyalsa_1.0.16.bb b/recipes/python/python-pyalsa_1.0.16.bb new file mode 100644 index 0000000000..24bd27c242 --- /dev/null +++ b/recipes/python/python-pyalsa_1.0.16.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Support for the Linux 2.6.x ALSA Sound System" +SECTION = "devel/python" +DEPENDS = "alsa-lib" +PRIORITY = "optional" +LICENSE = "GPL" +SRCNAME = "pyalsa" +PR = "ml1" + +SRC_URI = "ftp://ftp.alsa-project.org/pub/${SRCNAME}/${SRCNAME}-${PV}.tar.bz2" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-pyalsaaudio_0.4.bb b/recipes/python/python-pyalsaaudio_0.4.bb new file mode 100644 index 0000000000..42b15ce5be --- /dev/null +++ b/recipes/python/python-pyalsaaudio_0.4.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Support for the Linux 2.6.x ALSA Sound System" +SECTION = "devel/python" +DEPENDS = "alsa-lib" +PRIORITY = "optional" +LICENSE = "GPL" +SRCNAME = "pyalsaaudio" +PR = "ml0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/pyalsaaudio/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-pybluez_0.15.bb b/recipes/python/python-pybluez_0.15.bb new file mode 100644 index 0000000000..17ffd385fc --- /dev/null +++ b/recipes/python/python-pybluez_0.15.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "Python bindings for the Linux Bluetooth stack" +SECTION = "devel/python" +DEPENDS = "bluez-libs" +LICENSE = "GPL" +PR = "ml0" + +SRC_URI = "http://pybluez.googlecode.com/files/PyBluez-0.15.tar.gz" +S = "${WORKDIR}/PyBluez-${PV}" + +inherit distutils diff --git a/recipes/python/python-pycairo/fix-setup-py.patch b/recipes/python/python-pycairo/fix-setup-py.patch new file mode 100644 index 0000000000..6165184448 --- /dev/null +++ b/recipes/python/python-pycairo/fix-setup-py.patch @@ -0,0 +1,24 @@ +diff -urN pycairo-1.4.0.orig/setup.py pycairo-1.4.0/setup.py +--- pycairo-1.4.0.orig/setup.py 2007-03-14 10:53:30.000000000 +0100 ++++ pycairo-1.4.0/setup.py 2008-09-23 18:55:25.000000000 +0200 +@@ -37,20 +37,6 @@ + runtime_library_dirs = pkg_config_parse('--libs-only-L', 'cairo') + + pkgconfig_file='pycairo.pc' +-print 'creating %s' % pkgconfig_file +-fo = open (pkgconfig_file, 'w') +-fo.write ("""\ +-prefix=%s +- +-Name: Pycairo +-Description: Python bindings for cairo +-Version: %s +-Requires: cairo +-Cflags: -I${prefix}/include/pycairo +-Libs: +-""" % (sys.prefix, pycairo_version) +- ) +-fo.close() + + cairo = dic.Extension( + name = 'cairo._cairo', diff --git a/recipes/python/python-pycairo_1.4.0.bb b/recipes/python/python-pycairo_1.4.0.bb new file mode 100644 index 0000000000..0cccd76d0f --- /dev/null +++ b/recipes/python/python-pycairo_1.4.0.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "Python Bindings for the Cairo canvas library" +SECTION = "devel/python" +HOMEPAGE = "http://cairographics.org/pycairo" +LICENSE = "LGPL MPL" +DEPENDS = "cairo" +PR = "ml3" + +SRC_URI = "http://cairographics.org/releases/pycairo-${PV}.tar.gz \ + file://fix-setup-py.patch;patch=1" +S = "${WORKDIR}/pycairo-${PV}" + +inherit distutils pkgconfig + +do_configure_append() { + sed -e 's:@prefix@:${prefix}:' -e 's:@includedir@:\$\{prefix\}/include:' -e 's:@VERSION@:${PV}:' pycairo.pc.in > pycairo.pc +} + +do_stage() { + install -d ${STAGING_INCDIR} + install -m 0644 cairo/pycairo.h ${STAGING_INCDIR} +} diff --git a/recipes/python/python-pycairo_1.8.0.bb b/recipes/python/python-pycairo_1.8.0.bb new file mode 100644 index 0000000000..4e3e4633ba --- /dev/null +++ b/recipes/python/python-pycairo_1.8.0.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "Python Bindings for the Cairo canvas library" +SECTION = "devel/python" +HOMEPAGE = "http://cairographics.org/pycairo" +LICENSE = "LGPL MPL" +# cairo >= 1.8.0 +DEPENDS = "cairo" +PR = "ml0" + +DEFAULT_PREFERENCE = "-1" + +SRC_URI = "http://cairographics.org/releases/pycairo-${PV}.tar.gz \ + file://fix-setup-py.patch;patch=1" +S = "${WORKDIR}/pycairo-${PV}" + +inherit distutils pkgconfig + +do_configure_append() { + sed -e 's:@prefix@:${prefix}:' -e 's:@includedir@:\$\{prefix\}/include:' -e 's:@VERSION@:${PV}:' pycairo.pc.in > pycairo.pc +} + +do_stage() { + install -d ${STAGING_INCDIR} + install -m 0644 cairo/pycairo.h ${STAGING_INCDIR} +} diff --git a/recipes/python/python-pycap_0.1.6.bb b/recipes/python/python-pycap_0.1.6.bb new file mode 100644 index 0000000000..63e19a4399 --- /dev/null +++ b/recipes/python/python-pycap_0.1.6.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Python Packet Capture Library" +SECTION = "devel/python" +PRIORITY = "optional" +RDEPENDS = "python-core" +DEPENDS = "libpcap libnet" +SRCNAME = "pycap" +PR = "r1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-pychecker_0.8.18.bb b/recipes/python/python-pychecker_0.8.18.bb new file mode 100644 index 0000000000..1b39b588ce --- /dev/null +++ b/recipes/python/python-pychecker_0.8.18.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "SourceCode Test Utility" +SECTION = "devel/python" +HOMEPAGE = "http://pychecker.sourceforge.net/" +PRIORITY = "optional" +LICENSE = "BSD" +SRCNAME = "pychecker" +PR = "ml0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-pycodes/no-docs.patch b/recipes/python/python-pycodes/no-docs.patch new file mode 100644 index 0000000000..5d41e8c03f --- /dev/null +++ b/recipes/python/python-pycodes/no-docs.patch @@ -0,0 +1,18 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- pycodes/setup.py~no-docs 2004-01-25 01:01:33.000000000 +0100 ++++ pycodes/setup.py 2004-04-04 03:24:53.000000000 +0200 +@@ -43,9 +43,7 @@ + 'pycodes.tests.quantization', + 'pycodes.tests.quantization.BSC', + 'pycodes.tests.quantization.BEC'], +- data_files=([('doc', +- map(lambda x: os.path.join('doc',x), +- ['pycodes.html','pycodes.info']))]), ++ data_files=(), + ext_modules = [ + Extension('pycodes.pyLDPC', + map(lambda x: os.path.join(pyLDPCdir,x),pyLDPCsrc) + diff --git a/recipes/python/python-pycodes_1.2.bb b/recipes/python/python-pycodes_1.2.bb new file mode 100644 index 0000000000..ce2cb17594 --- /dev/null +++ b/recipes/python/python-pycodes_1.2.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "The pycodes package provides various extensions to Python for low density parity check (LDPC) codes \ +(an extremely powerful class of error correcting codes)." +SECTION = "devel/python" +HOMEPAGE = "http://web.mit.edu/~emin/www/source_code/pycodes/index.html" +PRIORITY = "optional" +LICENSE = "PYCODES" +SRCNAME = "pycodes" +PR = "ml1" + +SRC_URI = "http://web.mit.edu/~emin/www/source_code/pycodes/pycodes-1-2.tar.gz \ + file://no-docs.patch;patch=1" +S = "${WORKDIR}/${SRCNAME}" + +inherit distutils diff --git a/recipes/python/python-pycrypto_2.0.1.bb b/recipes/python/python-pycrypto_2.0.1.bb new file mode 100644 index 0000000000..7300bbd60b --- /dev/null +++ b/recipes/python/python-pycrypto_2.0.1.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "A collection of cryptographic algorithms and protocols" +SECTION = "devel/python" +PRIORITY = "optional" +DEPENDS = "gmp" +SRCNAME = "pycrypto" +LICENSE = "pycrypto" +PR = "ml1" + +SRC_URI = "http://www.amk.ca/files/python/crypto/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-pycrypto_git.bb b/recipes/python/python-pycrypto_git.bb new file mode 100644 index 0000000000..9e6eecbebd --- /dev/null +++ b/recipes/python/python-pycrypto_git.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "A collection of cryptographic algorithms and protocols" +SECTION = "devel/python" +PRIORITY = "optional" +DEPENDS = "gmp" +SRCNAME = "pycrypto" +LICENSE = "pycrypto" +PR = "ml0" + +PV = "2.0.1+gitr${SRCREV}" +SRC_URI = "git://git.pycrypto.org:9419/crypto/pycrypto-2.x.git;protocol=git;branch=master" +S = "${WORKDIR}/git" + +inherit distutils diff --git a/recipes/python/python-pycurl/no-static-link.patch b/recipes/python/python-pycurl/no-static-link.patch new file mode 100644 index 0000000000..b7c5ab9c9c --- /dev/null +++ b/recipes/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/recipes/python/python-pycurl_7.18.2.bb b/recipes/python/python-pycurl_7.18.2.bb new file mode 100644 index 0000000000..a38a4b5a27 --- /dev/null +++ b/recipes/python/python-pycurl_7.18.2.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "libcurl Python Bindings" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "LGPL" +DEPENDS = "curl-${PV}" +SRCNAME = "pycurl" +PR = "ml2" + +SRC_URI = "\ + http://${SRCNAME}.sourceforge.net/download/${SRCNAME}-${PV}.tar.gz \ + file://no-static-link.patch;patch=1 \ +" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +RDEPENDS = "python-core curl (>=${PV})" diff --git a/recipes/python/python-pydirectfb/fix-directfb-detection.patch b/recipes/python/python-pydirectfb/fix-directfb-detection.patch new file mode 100644 index 0000000000..c8b7cc805a --- /dev/null +++ b/recipes/python/python-pydirectfb/fix-directfb-detection.patch @@ -0,0 +1,16 @@ +Index: pydirectfb/setup.py +=================================================================== +--- pydirectfb.orig/setup.py ++++ pydirectfb/setup.py +@@ -11,9 +11,10 @@ + Check dependencies add add the flags to include_dirs, library_dirs and + libraries. The basic logic is taken from pygame. + """ +- command = name + '-config --version --cflags --libs 2>/dev/null' ++ command = 'pkg-config %s --modversion --cflags --libs 2>/dev/null' % name + try: + config = os.popen(command).readlines() ++ print config + if len(config) == 0: + raise ValueError, 'command not found' + flags = (' '.join(config[1:]) + ' ').split() diff --git a/recipes/python/python-pyephem_3.7.3.3.bb b/recipes/python/python-pyephem_3.7.3.3.bb new file mode 100644 index 0000000000..885f285225 --- /dev/null +++ b/recipes/python/python-pyephem_3.7.3.3.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "PyEphem provides scientific-grade astronomical computations \ +for the Python programming language." +HOMEPAGE = "http://www.rhodesmill.org/brandon/projects/pyephem.html" +LICENSE = "PSF" +AUTHOR = "Brandon Craig Rhodes" +PR = "ml0" + +SRC_URI = "http://pypi.python.org/packages/source/p/pyephem/pyephem-${PV}.tar.gz" +S = "${WORKDIR}/pyephem-${PV}" + +inherit distutils diff --git a/recipes/python/python-pyfits_1.3.bb b/recipes/python/python-pyfits_1.3.bb new file mode 100644 index 0000000000..cc874e1394 --- /dev/null +++ b/recipes/python/python-pyfits_1.3.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "PyFITS provides an interface to FITS formatted files under the Python scripting language." +HOMEPAGE = "http://www.stsci.edu/resources/software_hardware/pyfits" +AUTHOR = "Space Telescope Science Institute" +RDEPENDS = "python-numpy" +SECTION = "devel/python" +LICENSE = "AURA" +PR = "ml0" + +SRC_URI = "http://www.stsci.edu/resources/software_hardware/pyfits/pyfits-${PV}.tar.gz" +S = "${WORKDIR}/pyfits-${PV}" + +inherit distutils diff --git a/recipes/python/python-pyflakes_0.3.0.bb b/recipes/python/python-pyflakes_0.3.0.bb new file mode 100644 index 0000000000..4a6580ea05 --- /dev/null +++ b/recipes/python/python-pyflakes_0.3.0.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Python Source-Code Testing Utility" +SECTION = "devel/python" +HOMEPAGE = "http://divmod.org/projects/pyflakes" +PRIORITY = "optional" +LICENSE = "BSD" +SRCNAME = "pyflakes" +PR = "ml0" + +SRC_URI = "http://pypi.python.org/packages/source/p/pyflakes/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-pyftpdlib_0.5.1.bb b/recipes/python/python-pyftpdlib_0.5.1.bb new file mode 100644 index 0000000000..201d7ab1a0 --- /dev/null +++ b/recipes/python/python-pyftpdlib_0.5.1.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "FTP Server Library" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "MIT" +PR = "ml0" + +inherit distutils + +SRC_URI = "http://pyftpdlib.googlecode.com/files/pyftpdlib-${PV}.tar.gz" +S = "${WORKDIR}/pyftpdlib-${PV}" + +RDEPENDS = "python-netserver" diff --git a/recipes/python/python-pygame-1.8.1/Setup b/recipes/python/python-pygame-1.8.1/Setup new file mode 100644 index 0000000000..dd6d540da5 --- /dev/null +++ b/recipes/python/python-pygame-1.8.1/Setup @@ -0,0 +1,63 @@ +#This Setup file is used by the setup.py script to configure the +#python extensions. You will likely use the "config.py" which will +#build a correct Setup file for you based on your system settings. +#If not, the format is simple enough to edit by hand. First change +#the needed commandline flags for each dependency, then comment out +#any unavailable optional modules in the first optional section. + + +SDL = -D_REENTRANT -Xlinker -lSDL -lpthread +FONT = -lSDL_ttf +IMAGE = -lSDL_image +MIXER = -lSDL_mixer +SMPEG = -lsmpeg +PNG = -lpng +JPEG = -ljpeg +SCRAP = -lX11 + +#DEBUG = -C-W -C-Wall +DEBUG = + +#the following modules are optional. you will want to compile +#everything you can, but you can ignore ones you don't have +#dependencies for, just comment them out + +imageext src/imageext.c $(SDL) $(IMAGE) $(PNG) $(JPEG) $(DEBUG) +font src/font.c $(SDL) $(FONT) $(DEBUG) +mixer src/mixer.c $(SDL) $(MIXER) $(DEBUG) +mixer_music src/music.c $(SDL) $(MIXER) $(DEBUG) +_numericsurfarray src/_numericsurfarray.c $(SDL) $(DEBUG) +_numericsndarray src/_numericsndarray.c $(SDL) $(MIXER) $(DEBUG) +scrap src/scrap.c $(SDL) $(SCRAP) $(DEBUG) + +#experimental new movie movie. requires libavcodec and libavformat. +#add any necessary compile flags to this line and uncomment. +#movieext src/movie.c src/ffmovie.c $(SDL) -lavcodec -lavformat + + +#these modules are required for pygame to run. they only require +#SDL as a dependency. these should not be altered + +base src/base.c $(SDL) $(DEBUG) +cdrom src/cdrom.c $(SDL) $(DEBUG) +color src/color.c $(SDL) $(DEBUG) +constants src/constants.c $(SDL) $(DEBUG) +display src/display.c $(SDL) $(DEBUG) +event src/event.c $(SDL) $(DEBUG) +fastevent src/fastevent.c src/fastevents.c $(SDL) $(DEBUG) +key src/key.c $(SDL) $(DEBUG) +mouse src/mouse.c $(SDL) $(DEBUG) +rect src/rect.c $(SDL) $(DEBUG) +rwobject src/rwobject.c $(SDL) $(DEBUG) +surface src/surface.c src/alphablit.c src/surface_fill.c $(SDL) $(DEBUG) +surflock src/surflock.c $(SDL) $(DEBUG) +time src/time.c $(SDL) $(DEBUG) +joystick src/joystick.c $(SDL) $(DEBUG) +draw src/draw.c $(SDL) $(DEBUG) +image src/image.c $(SDL) $(DEBUG) +overlay src/overlay.c $(SDL) $(DEBUG) +transform src/transform.c src/rotozoom.c src/scale2x.c $(SDL) $(DEBUG) +mask src/mask.c src/bitmask.c $(SDL) $(DEBUG) +bufferproxy src/bufferproxy.c $(SDL) $(DEBUG) +pixelarray src/pixelarray.c $(SDL) $(DEBUG) + diff --git a/recipes/python/python-pygame_1.8.1.bb b/recipes/python/python-pygame_1.8.1.bb new file mode 100644 index 0000000000..95191ce350 --- /dev/null +++ b/recipes/python/python-pygame_1.8.1.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "Python libSDL Bindings" +SECTION = "devel/python" +HOMEPAGE = "http://www.pygame.org" +LICENSE = "LGPL" +DEPENDS = "libsdl-x11 libsdl-image libsdl-mixer libsdl-net libsdl-ttf python-numeric" +DEPENDS += "${@base_conditional('ENTERPRISE_DISTRO', '1', '', 'smpeg', d)}" +SRCNAME = "pygame" +PR = "ml4" + +SRC_URI = "\ + ftp://ftp.pygame.org/pub/pygame/${SRCNAME}-${PV}release.tar.gz \ + file://Setup \ +" +S = "${WORKDIR}/${SRCNAME}-${PV}release" + +inherit distutils + +do_configure_prepend() { + cat ${WORKDIR}/Setup >Setup + SDL="`sdl-config --cflags` `sdl-config --libs`"; echo "SDL=$SDL" >>Setup + if [ '${ENTERPRISE_DISTRO}' != '1' ]; then + echo "movie src/movie.c \$(SDL) \$(SMPEG) \$(DEBUG)" >>Setup + fi +} + +do_stage() { + distutils_stage_all +} + +RDEPENDS = "python-numeric" diff --git a/recipes/python/python-pygobject-native_2.14.2.bb b/recipes/python/python-pygobject-native_2.14.2.bb new file mode 100644 index 0000000000..70af95259c --- /dev/null +++ b/recipes/python/python-pygobject-native_2.14.2.bb @@ -0,0 +1,16 @@ +require python-pygobject_${PV}.bb + +DEPENDS = "python-native glib-2.0-native" +PR = "r1" + +inherit native + +SRC_URI = "\ + ftp://ftp.gnome.org/pub/GNOME/sources/pygobject/${MAJ_VER}/pygobject-${PV}.tar.bz2 \ + file://python-path.patch;patch=1 \ +" + +do_stage_append() { + install -d ${STAGING_BINDIR} + install -m 0755 gobject/generate-constants ${STAGING_BINDIR}/gobject-generate-constants +} diff --git a/recipes/python/python-pygobject-native_2.16.0.bb b/recipes/python/python-pygobject-native_2.16.0.bb new file mode 100644 index 0000000000..a1c733334c --- /dev/null +++ b/recipes/python/python-pygobject-native_2.16.0.bb @@ -0,0 +1,18 @@ +require python-pygobject_${PV}.bb + +DEPENDS = "python-native glib-2.0-native" +PR = "r1" + +PARALLEL_MAKE = "" + +inherit native + +SRC_URI = "\ + ftp://ftp.gnome.org/pub/GNOME/sources/pygobject/${MAJ_VER}/pygobject-${PV}.tar.bz2 \ +# file://python-path.patch;patch=1 \ +" + +do_stage_append() { + install -d ${STAGING_BINDIR} + install -m 0755 gobject/generate-constants ${STAGING_BINDIR}/gobject-generate-constants +} diff --git a/recipes/python/python-pygobject/generate-constants.patch b/recipes/python/python-pygobject/generate-constants.patch new file mode 100644 index 0000000000..57a9380620 --- /dev/null +++ b/recipes/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/recipes/python/python-pygobject/python-path.patch b/recipes/python/python-pygobject/python-path.patch new file mode 100644 index 0000000000..d7907703f5 --- /dev/null +++ b/recipes/python/python-pygobject/python-path.patch @@ -0,0 +1,46 @@ +Index: pygobject-2.14.2/m4/python.m4 +=================================================================== +--- pygobject-2.14.2.orig/m4/python.m4 ++++ pygobject-2.14.2/m4/python.m4 +@@ -43,6 +43,11 @@ 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 test -x "$PYTHON-config"; then +@@ -53,6 +58,7 @@ if test "$py_prefix" != "$py_exec_prefix + 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" +Index: pygobject-2.14.2/configure.ac +=================================================================== +--- pygobject-2.14.2.orig/configure.ac ++++ pygobject-2.14.2/configure.ac +@@ -71,9 +71,6 @@ AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(c + + AC_MSG_CHECKING([for PySignal_SetWakeupFd in Python.h]) + py_prefix=`$PYTHON -c "import sys; print sys.prefix"` +-PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}" +-old_CPPFLAGS=$CPPFLAGS +-CPPFLAGS="-Wall -Werror $PYTHON_INCLUDES" + AC_TRY_COMPILE([#include <Python.h>], + [PySignal_SetWakeupFd(0);], + setwakeupfd_ok=yes, +@@ -83,7 +80,6 @@ if test "x$setwakeupfd_ok" != xno; then + AC_DEFINE(HAVE_PYSIGNAL_SETWAKEUPFD, 1, + [Define to 1 if PySignal_SetWakeupFd is available]) + fi +-CPPFLAGS=$old_CPPFLAGS + + PLATFORM=`$PYTHON -c "from distutils import util; print util.get_platform()"` + AC_SUBST(PLATFORM) diff --git a/recipes/python/python-pygobject_2.14.2.bb b/recipes/python/python-pygobject_2.14.2.bb new file mode 100644 index 0000000000..ed64a37645 --- /dev/null +++ b/recipes/python/python-pygobject_2.14.2.bb @@ -0,0 +1,32 @@ +DESCRIPTION = "Python GObject bindings" +SECTION = "devel/python" +LICENSE = "LGPL" +DEPENDS = "python-pygobject-native" +PE = "1" +PR = "r3" + +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://python-path.patch;patch=1 \ + file://generate-constants.patch;patch=1 \ +" +S = "${WORKDIR}/pygobject-${PV}" + +FILESPATH = "${FILE_DIRNAME}/python-pygobject:${FILE_DIRNAME}/files" + +inherit autotools distutils-base pkgconfig + +EXTRA_OECONF += '--with-python-includes="${STAGING_INCDIR}/.."' + +do_stage() { + autotools_stage_all + install -d ${STAGING_LIBDIR}/../share/pygobject/ + cp -dpfR docs/* ${STAGING_LIBDIR}/../share/pygobject/ + install -d ${STAGING_LIBDIR}/../share/gtk-doc/html/pygobject/ + cp docs/style.css ${STAGING_LIBDIR}/../share/gtk-doc/html/pygobject/ +} + +FILES_${PN} = "${libdir}/python*" +FILES_${PN}-dev += "${datadir}/pygobject/xsl" diff --git a/recipes/python/python-pygobject_2.16.0.bb b/recipes/python/python-pygobject_2.16.0.bb new file mode 100644 index 0000000000..d7bd1c041f --- /dev/null +++ b/recipes/python/python-pygobject_2.16.0.bb @@ -0,0 +1,38 @@ +DESCRIPTION = "Python GObject bindings" +SECTION = "devel/python" +LICENSE = "LGPL" +DEPENDS = "python-pygobject-native-${PV}" +PR = "ml2" + +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;patch=1 \ +" +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 + +do_stage() { + autotools_stage_all + install -d ${STAGING_LIBDIR}/../share/pygobject/ + cp -dpfR docs/* ${STAGING_LIBDIR}/../share/pygobject/ + install -d ${STAGING_LIBDIR}/../share/gtk-doc/html/pygobject/ + cp docs/style.css ${STAGING_LIBDIR}/../share/gtk-doc/html/pygobject/ +} + +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/recipes/python/python-pygoogle_0.6.bb b/recipes/python/python-pygoogle_0.6.bb new file mode 100644 index 0000000000..e3dee68706 --- /dev/null +++ b/recipes/python/python-pygoogle_0.6.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "This module is a wrapper for the Google Web APIs. \ +It allows you to do Google searches, retrieve pages from the \ +Google cache, and ask Google for spelling suggestions." +SECTION = "devel/python" +HOMEPAGE = "http://pygoogle.sourceforge.net/" +PRIORITY = "optional" +LICENSE = "PSF" +RDEPENDS = "python-soappy" +SRCNAME = "pygoogle" +PR = "ml1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + diff --git a/recipes/python/python-pygtk-1.2/acinclude.m4 b/recipes/python/python-pygtk-1.2/acinclude.m4 new file mode 100644 index 0000000000..53518fb2eb --- /dev/null +++ b/recipes/python/python-pygtk-1.2/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 <Python.h>],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/recipes/python/python-pygtk-1.2/remove-imlib-et-al.patch b/recipes/python/python-pygtk-1.2/remove-imlib-et-al.patch new file mode 100644 index 0000000000..94bb164f67 --- /dev/null +++ b/recipes/python/python-pygtk-1.2/remove-imlib-et-al.patch @@ -0,0 +1,31 @@ +remove checking for imlib, pixbuf, gtkgl and libglade + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- pygtk-0.6.12/configure.in~remove-imlib-et-al ++++ pygtk-0.6.12/configure.in +@@ -45,17 +45,14 @@ + fi + + AM_PATH_GTK(gtk_required_version,,,$extra_mods) +-AM_PATH_GDK_IMLIB(imlib_required_version, build_imlib=true, build_imlib=false) +-AM_CONDITIONAL(BUILD_IMLIB, $build_imlib) + +-AM_PATH_GDK_PIXBUF(pixbuf_required_version, build_pixbuf=true, build_pixbuf=false) +-AM_CONDITIONAL(BUILD_PIXBUF, $build_pixbuf) ++AM_CONDITIONAL(BUILD_IMLIB, false) + +-AM_PATH_GTKGL(build_gtkgl=true, build_gtkgl=false) +-AM_CONDITIONAL(BUILD_GTKGL, $build_gtkgl) ++AM_CONDITIONAL(BUILD_PIXBUF, false) + +-AM_PATH_LIBGLADE(build_libglade=true, build_libglade=false) +-AM_CONDITIONAL(BUILD_LIBGLADE, $build_libglade) ++AM_CONDITIONAL(BUILD_GTKGL, false) ++ ++AM_CONDITIONAL(BUILD_LIBGLADE, false) + + + AC_ARG_ENABLE(numpy, diff --git a/recipes/python/python-pygtk-1.2_0.6.12.bb b/recipes/python/python-pygtk-1.2_0.6.12.bb new file mode 100644 index 0000000000..0b153ce1e5 --- /dev/null +++ b/recipes/python/python-pygtk-1.2_0.6.12.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "Python Bindings for GTK+ 1.2" +HOMEPAGE = "http://www.gtk.org" +SECTION = "devel/python" +LICENSE = "LGPL" +DEPENDS = "gtk+-1.2" +RDEPENDS = "python-shell python-re" +SRCNAME = "pygtk" +PR = "r3" + +SRC_URI = "ftp://ftp.gtk.org/pub/gtk/python/v1.2/${SRCNAME}-${PV}.tar.gz \ + file://remove-imlib-et-al.patch;patch=1 \ + file://acinclude.m4" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit autotools_stage pkgconfig distutils-base + +EXTRA_OECONF += "--with-python-includes=${STAGING_INCDIR}/../" + +do_configure_prepend() { + install -m 0644 ${WORKDIR}/acinclude.m4 ${S}/ + echo ${LDFLAGS} > /tmp/ldflags + rm -f aclocal.m4 +} + +FILES_${PN}-dev += "${datadir}/pygtk" diff --git a/recipes/python/python-pygtk/acinclude.m4 b/recipes/python/python-pygtk/acinclude.m4 new file mode 100644 index 0000000000..53518fb2eb --- /dev/null +++ b/recipes/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 <Python.h>],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/recipes/python/python-pygtk/fix-gtkunixprint.patch b/recipes/python/python-pygtk/fix-gtkunixprint.patch new file mode 100644 index 0000000000..dca19ce5ed --- /dev/null +++ b/recipes/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/recipes/python/python-pygtk/nodocs.patch b/recipes/python/python-pygtk/nodocs.patch new file mode 100644 index 0000000000..9b2387e959 --- /dev/null +++ b/recipes/python/python-pygtk/nodocs.patch @@ -0,0 +1,13 @@ +Index: pygtk-2.10.4/Makefile.am +=================================================================== +--- pygtk-2.10.4.orig/Makefile.am ++++ pygtk-2.10.4/Makefile.am +@@ -4,7 +4,7 @@ if BUILD_GTK + GTK_SUBDIR = gtk + endif + +-SUBDIRS = codegen . $(GTK_SUBDIR) examples tests docs ++SUBDIRS = codegen . $(GTK_SUBDIR) examples tests + + PLATFORM_VERSION = 2.0 + diff --git a/recipes/python/python-pygtk/prevent_to_get_display_during_import.patch b/recipes/python/python-pygtk/prevent_to_get_display_during_import.patch new file mode 100644 index 0000000000..4d267400e7 --- /dev/null +++ b/recipes/python/python-pygtk/prevent_to_get_display_during_import.patch @@ -0,0 +1,18 @@ +upstream: http://bugzilla.gnome.org/show_bug.cgi?id=528758 +status: pending, reported on April 18th 2008 +comment: prevents a gtk window popping up, enabling the compilation on headless machines + +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/recipes/python/python-pygtk_2.10.4.bb b/recipes/python/python-pygtk_2.10.4.bb new file mode 100644 index 0000000000..3f0e593c98 --- /dev/null +++ b/recipes/python/python-pygtk_2.10.4.bb @@ -0,0 +1,64 @@ +DESCRIPTION = "Python GTK+ 2.10.x Bindings" +SECTION = "devel/python" +# needs gtk+ 2.10.x +DEPENDS = "gtk+ libglade python-pycairo python-pygobject" +RDEPENDS = "python-shell python-pycairo python-pygobject" +PROVIDES = "python-pygtk2" +SRCNAME = "pygtk" +LICENSE = "LGPL" +PR = "ml10" + +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/pygtk/${MAJ_VER}/${SRCNAME}-${PV}.tar.bz2 \ + file://fix-gtkunixprint.patch;patch=1 \ + file://prevent_to_get_display_during_import.patch;patch=1 \ + file://nodocs.patch;patch=1 \ + 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" + +do_stage() { + autotools_stage_includes + sed -i s:/usr/share:${STAGING_DATADIR}: codegen/pygtk-codegen-2.0 + install -m 0755 codegen/pygtk-codegen-2.0 ${STAGING_BINDIR_NATIVE}/ + # until we have a newer pygobject version, we resue pygtk's codegen + ln -sf ./pygtk-codegen-2.0 ${STAGING_BINDIR_NATIVE}/pygobject-codegen-2.0 + install -d ${STAGING_DATADIR}/pygtk/2.0/codegen + install -d ${STAGING_DATADIR}/pygtk/2.0/defs/ + cp -pPr codegen/*.py* ${STAGING_DATADIR}/pygtk/2.0/codegen/ + cp -pPr *.defs ${STAGING_DATADIR}/pygtk/2.0/defs/ + cp -pPr gtk/*.defs ${STAGING_DATADIR}/pygtk/2.0/defs/ +} diff --git a/recipes/python/python-pygtk_2.6.3.bb b/recipes/python/python-pygtk_2.6.3.bb new file mode 100644 index 0000000000..01c50f9a52 --- /dev/null +++ b/recipes/python/python-pygtk_2.6.3.bb @@ -0,0 +1,34 @@ +DESCRIPTION = "Python GTK+ Bindings" +SECTION = "devel/python" +DEPENDS = "gtk+-2.6.10 libglade" +RDEPENDS = "python-shell" +SRCNAME = "pygtk" +LICENSE = "LGPL" +PR = "ml1" + +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/pygtk/${MAJ_VER}/${SRCNAME}-${PV}.tar.bz2 \ + file://acinclude.m4" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit autotools pkgconfig distutils-base + +EXTRA_OECONF += "--with-python-includes=${STAGING_INCDIR}/../" + +PACKAGES = "${PN}-dbg ${PN}-dev ${PN}-doc ${PN}" +FILES_${PN}-dev += "${bindir} ${datadir}/pygtk ${libdir}/pygtk" + +do_configure_prepend() { + install -m 0644 ${WORKDIR}/acinclude.m4 ${S}/ +} + +do_stage() { + autotools_stage_includes + sed -i s:/usr/share:${STAGING_DATADIR}: codegen/pygtk-codegen-2.0 + install -m 0755 codegen/pygtk-codegen-2.0 ${STAGING_BINDIR_NATIVE}/ + install -d ${STAGING_DATADIR}/pygtk/2.0/codegen + install -d ${STAGING_DATADIR}/pygtk/2.0/defs/ + cp -pPr codegen/*.py* ${STAGING_DATADIR}/pygtk/2.0/codegen/ + cp -pPr *.defs ${STAGING_DATADIR}/pygtk/2.0/defs/ + cp -pPr gtk/*.defs ${STAGING_DATADIR}/pygtk/2.0/defs/ +} diff --git a/recipes/python/python-pygtk_2.8.6.bb b/recipes/python/python-pygtk_2.8.6.bb new file mode 100644 index 0000000000..4e7e22b159 --- /dev/null +++ b/recipes/python/python-pygtk_2.8.6.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "Python GTK+ Bindings" +SECTION = "devel/python" +PRIORITY = "optional" +# needs gtk+ 2.8.x +DEPENDS = "gtk+-2.8.16 libglade" +RDEPENDS = "python-shell" +SRCNAME = "pygtk" +LICENSE = "LGPL" +PR = "r2" + +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/pygtk/${MAJ_VER}/${SRCNAME}-${PV}.tar.bz2 \ + file://acinclude.m4" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit autotools pkgconfig distutils-base + +EXTRA_OECONF += "--with-python-includes=${STAGING_INCDIR}/../" + +do_configure_prepend() { + install -m 0644 ${WORKDIR}/acinclude.m4 ${S}/ +} + +do_stage() { + autotools_stage_includes + install -m 0755 codegen/pygtk-codegen-2.0 ${STAGING_BINDIR_NATIVE}/ +} diff --git a/recipes/python/python-pyid3lib_0.5.1.bb b/recipes/python/python-pyid3lib_0.5.1.bb new file mode 100644 index 0000000000..bf7e3d0a2f --- /dev/null +++ b/recipes/python/python-pyid3lib_0.5.1.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "A Python Wrapper for libid3." +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "LGPL" +DEPENDS = "id3lib" +SRCNAME = "pyid3lib" +PR = "r1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/pyid3lib/${SRCNAME}-${PV}.tar.bz2" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + + diff --git a/recipes/python/python-pyiw-0.3.3/Makefile b/recipes/python/python-pyiw-0.3.3/Makefile new file mode 100644 index 0000000000..2ea7baec08 --- /dev/null +++ b/recipes/python/python-pyiw-0.3.3/Makefile @@ -0,0 +1,18 @@ +# Simple Makfile + +NAME = pyiw +LIBS += -liw + +#static: pyiw.c +# @echo "Statically Building/Linking $(NAME)" +# @$(CC) $(CFLAGS) -Istaticlibiw $(<) -shared -o $(NAME).so staticlibiw/libiw.a + +dynamic: pyiw.c + @echo "Dynamically Building/Linking $(NAME)" + @$(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) $(<) -shared -o $(NAME).so + +clean: + @rm -rf *.o + @rm -rf $(NAME).so + @rm -rf $(NAME).so.t* + diff --git a/recipes/python/python-pylinda/honor-datadir.patch b/recipes/python/python-pylinda/honor-datadir.patch new file mode 100644 index 0000000000..decf686e34 --- /dev/null +++ b/recipes/python/python-pylinda/honor-datadir.patch @@ -0,0 +1,15 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- linda-0.6/setup.py~honor-datadir.patch ++++ linda-0.6/setup.py +@@ -68,6 +68,7 @@ + f.close() + + def getlibpath(): ++ return os.getenv("LINDA_DATADIR") + l = sys.path + l.reverse() + for x in l: diff --git a/recipes/python/python-pylinda_0.6.bb b/recipes/python/python-pylinda_0.6.bb new file mode 100644 index 0000000000..a43dd7e7f8 --- /dev/null +++ b/recipes/python/python-pylinda_0.6.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "Python Implementation of Linda Tuple Space" +SECTION = "devel/python" +HOMEPAGE = "http://www-users.cs.york.ac.uk/~aw/pylinda/" +PRIORITY = "optional" +LICENSE = "LGPL" +SRCNAME = "linda" +PR = "r1" + +SRC_URI = "http://www.handhelds.org/~aquadran/distro/latest/sources/linda-${PV}.tar.gz \ + file://honor-datadir.patch;patch=1" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +export LINDA_DATADIR = "${D}/${libdir}/${PYTHON_DIR}" diff --git a/recipes/python/python-pylint_0.15.2.bb b/recipes/python/python-pylint_0.15.2.bb new file mode 100644 index 0000000000..d0640607f0 --- /dev/null +++ b/recipes/python/python-pylint_0.15.2.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "Pylint is a python tool that checks if a module satisfy a coding standard. Pylint can be seen as another \ +pychecker since nearly all tests you can do with PyChecker can also be done with Pylint. But Pylint offers some more \ +features, like checking line-code's length, checking if variable names are well-formed according to your coding standard,\ +or checking if declared interfaces are truly implemented, and much more." +SECTION = "devel/python" +HOMEPAGE = "http://www.logilab.org/857" +PRIORITY = "optional" +LICENSE = "GPL" +RDEPENDS = "python-logilab-common" +SRCNAME = "pylint" +PR = "ml0" + +SRC_URI = "ftp://ftp.logilab.org/pub/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-pylirc_0.0.5.bb b/recipes/python/python-pylirc_0.0.5.bb new file mode 100644 index 0000000000..5760c7682d --- /dev/null +++ b/recipes/python/python-pylirc_0.0.5.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "Python lirc module. See http://www.lirc.org for more info on lirc" +SECTION = "devel/python" +PRIORITY = "optional" +DEPENDS = "lirc" +LICENSE = "LGPL" +PR = "r1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/pylirc/pylirc-${PV}.tar.gz" +S = "${WORKDIR}/pylirc-${PV}" + +inherit distutils diff --git a/recipes/python/python-pymetar_0.14.bb b/recipes/python/python-pymetar_0.14.bb new file mode 100644 index 0000000000..7520b668bd --- /dev/null +++ b/recipes/python/python-pymetar_0.14.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "Access NOAA's METAR weather reports" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +SRCNAME = "pymetar" +PR = "ml1" + +SRC_URI = "http://www.schwarzvogel.de/pkgs/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-pymp3_0.3.4.bb b/recipes/python/python-pymp3_0.3.4.bb new file mode 100644 index 0000000000..371c662098 --- /dev/null +++ b/recipes/python/python-pymp3_0.3.4.bb @@ -0,0 +1,29 @@ +DESCRIPTION = "A Curses-based mp3 player. See http://damien.degois.info/PyMP3/" +SECTION = "console/multimedia" +PRIORITY = "optional" +RDEPENDS = "python-core python-curses python-pyid3lib python-mad python-ao" +LICENSE = "GPL" +PR = "r3" + +SRC_URI = "http://www.vanille.de/mirror/PyMP3-0.3.4.tar.gz" +S = "${WORKDIR}/PyMP3-0.3.4" + +inherit distutils-base + +PY_FILES = "box_info.py layer.py sound_ctrl.py stack.py txt_tools.py" + +do_install() { + install -d ${D}${libdir} + install -d ${D}${libdir}/${PYTHON_DIR} + install -d ${D}${libdir}/${PYTHON_DIR}/site-packages + + for f in ${PY_FILES} + do + install -m 0644 $f ${D}${libdir}/${PYTHON_DIR}/site-packages/ + done + + install -d ${D}${bindir} + install -m 755 pymp3 ${D}${bindir}/ +} + +FILES_${PN} += " ${libdir}/${PYTHON_DIR}/site-packages/" diff --git a/recipes/python/python-pyode/install.patch b/recipes/python/python-pyode/install.patch new file mode 100644 index 0000000000..6f230972c7 --- /dev/null +++ b/recipes/python/python-pyode/install.patch @@ -0,0 +1,16 @@ +Index: PyODE-1.2.0/setup.py +=================================================================== +--- PyODE-1.2.0.orig/setup.py ++++ PyODE-1.2.0/setup.py +@@ -39,11 +39,6 @@ if sys.platform=="win32": + # Linux (and other) specific settings + ###################################################################### + else: +- +- for base in ["/usr", "/usr/local", "/opt/local"]: +- INC_DIRS += [os.path.join(base, "include")] +- LIB_DIRS += [os.path.join(base, "lib")] +- + LIBS += ["ode", "stdc++"] + + diff --git a/recipes/python/python-pyode_1.2.0.bb b/recipes/python/python-pyode_1.2.0.bb new file mode 100644 index 0000000000..be4b38acd5 --- /dev/null +++ b/recipes/python/python-pyode_1.2.0.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "PyODE is a set of open-source Python bindings for The Open Dynamics Engine, \ +an open-source physics engine. PyODE also includes an XODE parser." +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "LGPL" +DEPENDS = "ode" +SRCNAME = "PyODE" +PR = "r1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/pyode/${SRCNAME}-${PV}.tar.bz2 \ + file://install.patch;patch=1" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +do_configure_prepend() { + ln -s ${STAGING_LIBDIR}/.. ../ode +} + diff --git a/recipes/python/python-pyopenssl_0.8.bb b/recipes/python/python-pyopenssl_0.8.bb new file mode 100644 index 0000000000..b89d68f00d --- /dev/null +++ b/recipes/python/python-pyopenssl_0.8.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "Simple Python wrapper around the OpenSSL library" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "LGPL" +SRCNAME = "pyOpenSSL" +DEPENDS = "openssl" +PR = "ml0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/pyopenssl/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +RDEPENDS = "python-threading" + diff --git a/recipes/python/python-pyqt/01_configure.dpatch b/recipes/python/python-pyqt/01_configure.dpatch new file mode 100644 index 0000000000..d7c45b9a44 --- /dev/null +++ b/recipes/python/python-pyqt/01_configure.dpatch @@ -0,0 +1,288 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 01_configure.dpatch by Torsten Marek <shlomme@debian.org> +## +## DP: Make PyQt4 objectdir-buildable + +@DPATCH@ +diff -urNad python-qt4-4.2+snapshot20070727~/configure.py python-qt4-4.2+snapshot20070727/configure.py +--- python-qt4-4.2+snapshot20070727~/configure.py 2007-07-29 23:58:48.000000000 +0200 ++++ python-qt4-4.2+snapshot20070727/configure.py 2007-07-30 00:00:17.000000000 +0200 +@@ -20,6 +20,8 @@ + # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + ++# Modified for Debian by Torsten Marek <shlomme@gmx.net> ++ + import sys + import os + import string +@@ -29,6 +31,23 @@ + + import sipconfig + ++topsrcdir = os.path.dirname(os.path.abspath(__file__)) ++has_objdir = topsrcdir != os.path.abspath(os.path.curdir) ++if not has_objdir: ++ topsrcdir = None ++ ++ ++def makeDir(dirname): ++ try: ++ os.mkdir(dirname) ++ except OSError, e: ++ if e.errno != 17: ++ raise ++ ++def srcPath(filename): ++ if topsrcdir is not None: ++ return os.path.join(topsrcdir, filename) ++ return filename + + # Initialise the globals. + pyqt_version = 0x040200 +@@ -134,6 +153,8 @@ + p.add_option("-g", "--consolidate", action="store_true", default=False, + dest="bigqt", help="create a single module which links against " + "all the Qt libraries") ++ p.add_option("--disable-designer-plugin", action="store_true", default=False, ++ help="do not build the Qt Designer plugin") + + # These are internal options used to build the mega Windows GPL package. + p.add_option("--mwg-openssl", action="callback", default=None, +@@ -282,6 +303,7 @@ + check_module("QAxContainer", "qaxobject.h", "new QAxObject()", + extra_libs=["QAxContainer"]) + ++ makeDir("dbus") + if os.path.isdir("dbus"): + check_dbus() + +@@ -354,7 +376,7 @@ + generate_code("QtAssistant") + + if "QtDesigner" in pyqt_modules: +- qpy_dir = os.path.abspath(os.path.join("qpy", "QtDesigner")) ++ qpy_dir = os.path.abspath(srcPath(os.path.join("qpy", "QtDesigner"))) + + if sys.platform == "win32": + if opts.debug: +@@ -380,10 +402,10 @@ + + # Generate the composite module. + qtmod_sipdir = os.path.join("sip", "Qt") +- mk_clean_dir(qtmod_sipdir) ++ mk_clean_dir(srcPath(qtmod_sipdir)) + + qtmod_sipfile = os.path.join(qtmod_sipdir, "Qtmod.sip") +- f = open(qtmod_sipfile, "w") ++ f = open(srcPath(qtmod_sipfile), "w") + + f.write("""%CompositeModule PyQt4.Qt + +@@ -555,7 +577,7 @@ + return libs, libdirs + + def module_installs(self): +- return ["__init__.py", "pyqtconfig.py"] ++ return [srcPath("__init__.py"), "pyqtconfig.py"] + + def qpylibs(self): + # See which QPy libraries to build. +@@ -571,8 +593,8 @@ + for qpy, pro in qpylibs.iteritems(): + sipconfig.inform("Creating QPy library for %s Makefile..." % qpy) + +- os.chdir(os.path.join("qpy", qpy)) +- ++ os.chdir(srcPath(os.path.join("qpy", qpy))) ++ + if sipcfg.universal: + upro = "u_" + pro + +@@ -596,6 +618,8 @@ + + sipconfig.inform("Creating QPy libraries Makefile...") + ++ makeDir("qpy") ++ os.system("ln -s %s qpy/QtDesigner" % (srcPath("qpy/QtDesigner"),)) + sipconfig.ParentMakefile( + configuration=sipcfg, + dir="qpy", +@@ -617,6 +641,7 @@ + install_dir=pydbusmoddir, + qt=["QtCore"], + debug=opts.debug, ++ topsrcdir=topsrcdir, + universal=sipcfg.universal + ) + +@@ -625,18 +650,19 @@ + makefile.generate() + tool.append("dbus") + +- # Only include ElementTree for older versions of Python. +- if sipcfg.py_version < 0x020500: +- sipconfig.inform("Creating elementtree Makefile...") ++ # Don't include elementtree on Debian ++## # Only include ElementTree for older versions of Python. ++## if sipcfg.py_version < 0x020500: ++## sipconfig.inform("Creating elementtree Makefile...") + +- makefile = sipconfig.PythonModuleMakefile( +- configuration=sipcfg, +- dstdir=os.path.join(pyqt_modroot, "elementtree"), +- dir="elementtree" +- ) ++## makefile = sipconfig.PythonModuleMakefile( ++## configuration=sipcfg, ++## dstdir=os.path.join(pyqt_modroot, "elementtree"), ++## dir="elementtree" ++## ) + +- makefile.generate() +- tool.append("elementtree") ++## makefile.generate() ++## tool.append("elementtree") + + # Create the pyuic4 wrapper. Use the GUI version on MacOS (so that + # previews work properly and normal console use will work anyway), but +@@ -644,16 +670,18 @@ + sipconfig.inform("Creating pyuic4 wrapper...") + + uicdir=os.path.join(pyqt_modroot, "uic") +- wrapper = sipconfig.create_wrapper(os.path.join(uicdir, "pyuic.py"), os.path.join("pyuic", "pyuic4"), (sys.platform == "darwin")) ++ makeDir("pyuic") ++ # Wrapper script is not needed on Debian ++ #wrapper = sipconfig.create_wrapper(os.path.join(uicdir, "pyuic.py"), os.path.join("pyuic", "pyuic4"), (sys.platform == "darwin")) + + sipconfig.inform("Creating pyuic4 Makefile...") + + makefile = sipconfig.PythonModuleMakefile( + configuration=sipcfg, + dstdir=uicdir, +- srcdir="uic", ++ srcdir=srcPath(os.path.join("pyuic", "uic")), + dir="pyuic", +- installs=[[os.path.basename(wrapper), opts.pyqtbindir]] ++ #installs=[[os.path.basename(wrapper), opts.pyqtbindir]] + ) + + makefile.generate() +@@ -661,7 +689,7 @@ + + if "QtXml" in pyqt_modules: + sipconfig.inform("Creating pylupdate4 Makefile...") +- ++ makeDir("pylupdate") + makefile = sipconfig.ProgramMakefile( + configuration=sipcfg, + build_file="pylupdate.sbf", +@@ -671,14 +699,15 @@ + qt=["QtCore", "QtGui", "QtXml"], + debug=opts.debug, + warnings=1, ++ topsrcdir=topsrcdir, + universal=sipcfg.universal + ) +- ++ makefile.extra_include_dirs.append(srcPath("pylupdate")) + makefile.generate() + tool.append("pylupdate") + + sipconfig.inform("Creating pyrcc4 Makefile...") +- ++ makeDir("pyrcc") + makefile = sipconfig.ProgramMakefile( + configuration=sipcfg, + build_file="pyrcc.sbf", +@@ -688,6 +717,7 @@ + qt=["QtCore", "QtXml"], + debug=opts.debug, + warnings=1, ++ topsrcdir=topsrcdir, + universal=sipcfg.universal + ) + +@@ -697,7 +727,7 @@ + sipconfig.inform("pylupdate4 and pyrcc4 will not be built because the Qt XML module is missing.") + + if "QtDesigner" in pyqt_modules: +- enabled = True ++ enabled = not opts.disable_designer_plugin + + py_major = sipcfg.py_version >> 16 + py_minor = (sipcfg.py_version >> 8) & 0x0ff +@@ -731,7 +761,7 @@ + # Run qmake to generate the Makefile. + qmake_args = fix_qmake_args() + cwd = os.getcwd() +- os.chdir("designer") ++ os.chdir(srcPath("designer")) + + # Create the qmake project file. + fin = open("python.pro-in") +@@ -755,7 +785,7 @@ + run_command("%s %s" % (opts.qmake, qmake_args)) + os.chdir(cwd) + +- tool.append("designer") ++ tool.append(srcPath("designer")) + + return tool + +@@ -899,7 +929,6 @@ + add_makefile_extras(makefile, extra_include_dirs, extra_lib_dirs, extra_libs) + + exe, build = makefile.build_command(name) +- + # Make sure the executable file doesn't exist. + remove_file(exe) + run_command(build) +@@ -1025,7 +1054,7 @@ + return + + # Check the module's main .sip file exists. +- if os.access(os.path.join("sip", mname, mname + "mod.sip"), os.F_OK): ++ if os.access(srcPath(os.path.join("sip", mname, mname + "mod.sip")), os.F_OK): + sipconfig.inform("Checking to see if the %s module should be built..." % mname) + + if check_api(incfile, test, mname, extra_include_dirs=extra_include_dirs, extra_lib_dirs=extra_lib_dirs, extra_libs=extra_libs): +@@ -1226,10 +1255,14 @@ + argv.append(buildfile) + + argv.append("-I") +- argv.append("sip") ++ argv.append(srcPath("sip")) + + # SIP assumes POSIX style path separators. +- argv.append(string.join(["sip", mname, mname + "mod.sip"], "/")) ++ if topsrcdir is not None: ++ argv.append(string.join([topsrcdir, "sip", mname, mname + "mod.sip"], "/")) ++ else: ++ argv.append(string.join(["sip", mname, mname + "mod.sip"], "/")) ++ + + cmd = string.join(argv) + +@@ -1251,7 +1284,11 @@ + sipfiles = [] + + for s in glob.glob("sip/" + mname + "/*.sip"): +- sipfiles.append(os.path.join("..", "sip", mname, os.path.basename(s))) ++ if has_objdir: ++ topdir = topsrcdir ++ else: ++ topdir = ".." ++ sipfiles.append(os.path.join(topdir, "sip", mname, os.path.basename(s))) + + installs.append([sipfiles, os.path.join(opts.pyqtsipdir, mname)]) + +@@ -1835,7 +1872,7 @@ + ).generate() + + # Install the configuration module. +- create_config("pyqtconfig.py", "pyqtconfig.py.in", macros) ++ create_config("pyqtconfig.py", srcPath("pyqtconfig.py.in"), macros) + + + ############################################################################### diff --git a/recipes/python/python-pyqt/02_htmllinks.dpatch b/recipes/python/python-pyqt/02_htmllinks.dpatch new file mode 100644 index 0000000000..f65509ae2c --- /dev/null +++ b/recipes/python/python-pyqt/02_htmllinks.dpatch @@ -0,0 +1,18 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 02_htmllinks.dpatch by Torsten Marek <shlomme@debian.org> + +## DP: Fix the links in the documentation HTML files. + +@DPATCH@ +diff -urNad python-qt4-4.1~/doc/pyqt4ref.html python-qt4-4.1/doc/pyqt4ref.html +--- python-qt4-4.1~/doc/pyqt4ref.html 2006-11-05 00:51:19.000000000 +0100 ++++ python-qt4-4.1/doc/pyqt4ref.html 2006-11-21 23:35:52.000000000 +0100 +@@ -85,7 +85,7 @@ + <p>This is the reference guide for PyQt 4.1. PyQt v4 is a set of + <a class="reference" href="http://www.python.org">Python</a> bindings for v4 of the Qt application + framework from <a class="reference" href="http://www.trolltech.com">Trolltech</a>.</p> +-<p>There is a separate <a class="reference" href="html/classes.html">PyQt API Reference</a>.</p> ++<p>There is a separate <a class="reference" href="classes.html">PyQt API Reference</a>.</p> + <p>Qt is a set of C++ libraries and development tools that includes platform + independent abstractions for graphical user interfaces, networking, threads, + Unicode, regular expressions, SQL databases, SVG, OpenGL, XML, and user and diff --git a/recipes/python/python-pyqt/03_qreal.dpatch b/recipes/python/python-pyqt/03_qreal.dpatch new file mode 100644 index 0000000000..8f9568656c --- /dev/null +++ b/recipes/python/python-pyqt/03_qreal.dpatch @@ -0,0 +1,18 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 03_qreal.dpatch by Torsten Marek <shlomme@debian.org> +## +## DP: On ARM, ARMEL, Mips and Mipsel, qreal is a float, not a double. + +@DPATCH@ +diff -urNad python-qt4-4.3~/sip/QtCore/qglobal.sip python-qt4-4.3/sip/QtCore/qglobal.sip +--- python-qt4-4.3~/sip/QtCore/qglobal.sip 2007-08-07 21:52:15.000000000 +0200 ++++ python-qt4-4.3/sip/QtCore/qglobal.sip 2007-08-07 22:10:14.000000000 +0200 +@@ -46,7 +46,7 @@ + typedef unsigned long long quint64; + typedef qint64 qlonglong; + typedef quint64 qulonglong; +-typedef double qreal; ++typedef float qreal; + typedef unsigned char uchar; + typedef unsigned short ushort; + typedef unsigned int uint; diff --git a/recipes/python/python-pyqt/04_qreal_api_fixes-for-4.4.3.dpatch b/recipes/python/python-pyqt/04_qreal_api_fixes-for-4.4.3.dpatch new file mode 100644 index 0000000000..0701238afb --- /dev/null +++ b/recipes/python/python-pyqt/04_qreal_api_fixes-for-4.4.3.dpatch @@ -0,0 +1,260 @@ +diff --git a/sip/QtCore/qlist.sip b/sip/QtCore/qlist.sip +index d387763..bbb2e08 100644 +--- a/sip/QtCore/qlist.sip ++++ b/sip/QtCore/qlist.sip +@@ -343,8 +343,8 @@ template<TYPE1, TYPE2> + %End + }; + %If (Qt_4_3_0 -) +-// QList<QPair<double, double> > is implemented as a Python list of 2-element tuples. +-%MappedType QList<QPair<double, double> > ++// QList<QPair<float, float> > is implemented as a Python list of 2-element tuples. ++%MappedType QList<QPair<float, float> > + { + %TypeHeaderCode + #include <qlist.h> +@@ -361,7 +361,7 @@ template<TYPE1, TYPE2> + // Set the list elements. + for (int i = 0; i < sipCpp->size(); ++i) + { +- const QPair<double, double> &p = sipCpp->at(i); ++ const QPair<float, float> &p = sipCpp->at(i); + PyObject *pobj; + + if ((pobj = Py_BuildValue((char *)"dd", p.first, p.second)) == NULL) +@@ -393,16 +393,16 @@ template<TYPE1, TYPE2> + return 1; + } + +- QList<QPair<double, double> > *ql = new QList<QPair<double, double> >; ++ QList<QPair<float, float> > *ql = new QList<QPair<float, float> >; + + for (SIP_SSIZE_T i = 0; i < len; ++i) + { + PyObject *tup = PySequence_ITEM(sipPy, i); + +- double first = PyFloat_AsDouble(PySequence_ITEM(tup, 0)); +- double second = PyFloat_AsDouble(PySequence_ITEM(tup, 1)); ++ float first = PyFloat_AsDouble(PySequence_ITEM(tup, 0)); ++ float second = PyFloat_AsDouble(PySequence_ITEM(tup, 1)); + +- ql->append(QPair<double, double>(first, second)); ++ ql->append(QPair<float, float>(first, second)); + } + + *sipCppPtr = ql; +@@ -412,9 +412,9 @@ template<TYPE1, TYPE2> + }; + %End + %If (Qt_4_3_0 -) +-// QList<QPair<double, TYPE> > is implemented as a Python list of 2-element tuples. +-template<double, TYPE> +-%MappedType QList<QPair<double, TYPE> > ++// QList<QPair<float, TYPE> > is implemented as a Python list of 2-element tuples. ++template<float, TYPE> ++%MappedType QList<QPair<float, TYPE> > + { + %TypeHeaderCode + #include <qlist.h> +@@ -431,7 +431,7 @@ template<double, TYPE> + // Set the list elements. + for (int i = 0; i < sipCpp->size(); ++i) + { +- const QPair<double, TYPE> &p = sipCpp->at(i); ++ const QPair<float, TYPE> &p = sipCpp->at(i); + TYPE *t = new TYPE(p.second); + PyObject *pobj; + +@@ -472,12 +472,12 @@ template<double, TYPE> + return 1; + } + +- QList<QPair<double, TYPE> > *ql = new QList<QPair<double, TYPE> >; ++ QList<QPair<float, TYPE> > *ql = new QList<QPair<float, TYPE> >; + + for (SIP_SSIZE_T i = 0; i < len; ++i) + { + PyObject *tup = PySequence_ITEM(sipPy, i); +- double d; ++ float d; + int state; + + d = PyFloat_AsDouble(PySequence_ITEM(tup, 0)); +@@ -491,7 +491,7 @@ template<double, TYPE> + return 0; + } + +- ql->append(QPair<double, TYPE>(d, *t)); ++ ql->append(QPair<float, TYPE>(d, *t)); + + sipReleaseInstance(t, sipClass_TYPE, state); + } +@@ -551,8 +551,8 @@ template<double, TYPE> + return sipGetState(sipTransferObj); + %End + }; +-// QList<double> is implemented as a Python list of floats. +-%MappedType QList<double> ++// QList<float> is implemented as a Python list of floats. ++%MappedType QList<float> + { + %TypeHeaderCode + #include <qlist.h> +@@ -590,7 +590,7 @@ template<double, TYPE> + if (sipIsErr == NULL) + return (len >= 0); + +- QList<double> *ql = new QList<double>; ++ QList<float> *ql = new QList<float>; + + for (SIP_SSIZE_T i = 0; i < len; ++i) + ql->append(PyFloat_AsDouble(PySequence_ITEM(sipPy, i))); +diff --git a/sip/QtCore/qvector.sip b/sip/QtCore/qvector.sip +index d652bfe..dea5601 100644 +--- a/sip/QtCore/qvector.sip ++++ b/sip/QtCore/qvector.sip +@@ -156,8 +156,8 @@ template<TYPE> + return sipGetState(sipTransferObj); + %End + }; +-// QVector<double> is implemented as a Python list of floats. +-%MappedType QVector<double> ++// QVector<float> is implemented as a Python list of floats. ++%MappedType QVector<float> + { + %TypeHeaderCode + #include <qvector.h> +@@ -193,7 +193,7 @@ template<TYPE> + if (sipIsErr == NULL) + return PyList_Check(sipPy); + +- QVector<double> *ql = new QVector<double>; ++ QVector<float> *ql = new QVector<float>; + + for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) + ql->append(PyFloat_AsDouble(PyList_GET_ITEM(sipPy, i))); +@@ -203,9 +203,9 @@ template<TYPE> + return sipGetState(sipTransferObj); + %End + }; +-// QVector<QPair<double, TYPE> > is implemented as a Python list of 2-element tuples. ++// QVector<QPair<float, TYPE> > is implemented as a Python list of 2-element tuples. + template<TYPE> +-%MappedType QVector<QPair<double, TYPE> > ++%MappedType QVector<QPair<float, TYPE> > + { + %TypeHeaderCode + #include <qvector.h> +@@ -222,7 +222,7 @@ template<TYPE> + // Set the list elements. + for (int i = 0; i < sipCpp->size(); ++i) + { +- const QPair<double, TYPE> &p = sipCpp->at(i); ++ const QPair<float, TYPE> &p = sipCpp->at(i); + TYPE *pt = new TYPE(p.second); + PyObject *pobj; + +@@ -261,14 +261,14 @@ template<TYPE> + return 1; + } + +- QVector<QPair<double, TYPE> > *qv = new QVector<QPair<double, TYPE> >; ++ QVector<QPair<float, TYPE> > *qv = new QVector<QPair<float, TYPE> >; + + for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) + { + PyObject *tup = PyList_GET_ITEM(sipPy, i); + int state; + TYPE *s; +- QPair<double, TYPE> p; ++ QPair<float, TYPE> p; + + p.first = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 0)); + +diff --git a/sip/QtGui/qbrush.sip b/sip/QtGui/qbrush.sip +index 7813bec..3993ef1 100644 +--- a/sip/QtGui/qbrush.sip ++++ b/sip/QtGui/qbrush.sip +@@ -151,7 +151,7 @@ public: + + QDataStream &operator>>(QDataStream &, QBrush & /Constrained/); + QDataStream &operator<<(QDataStream &, const QBrush & /Constrained/); +-typedef QVector<QPair<double, QColor> > QGradientStops; ++typedef QVector<QPair<float, QColor> > QGradientStops; + + class QGradient + { +diff --git a/sip/QtGui/qgraphicsitemanimation.sip b/sip/QtGui/qgraphicsitemanimation.sip +index f60107f..dbb7900 100644 +--- a/sip/QtGui/qgraphicsitemanimation.sip ++++ b/sip/QtGui/qgraphicsitemanimation.sip +@@ -77,19 +77,19 @@ signals: + + public: + %If (Qt_4_3_0 -) +- QList<QPair<double, QPointF> > posList() const; ++ QList<QPair<float, QPointF> > posList() const; + %End + %If (Qt_4_3_0 -) +- QList<QPair<double, double> > rotationList() const; ++ QList<QPair<float, float> > rotationList() const; + %End + %If (Qt_4_3_0 -) +- QList<QPair<double, QPointF> > translationList() const; ++ QList<QPair<float, QPointF> > translationList() const; + %End + %If (Qt_4_3_0 -) +- QList<QPair<double, QPointF> > scaleList() const; ++ QList<QPair<float, QPointF> > scaleList() const; + %End + %If (Qt_4_3_0 -) +- QList<QPair<double, QPointF> > shearList() const; ++ QList<QPair<float, QPointF> > shearList() const; + %End + + private: +diff --git a/sip/QtGui/qpainterpath.sip b/sip/QtGui/qpainterpath.sip +index 924174a..8fcb9e7 100644 +--- a/sip/QtGui/qpainterpath.sip ++++ b/sip/QtGui/qpainterpath.sip +@@ -219,8 +219,8 @@ public: + void setCurveThreshold(qreal threshold); + qreal curveThreshold() const; + void setDashPattern(Qt::PenStyle); +- void setDashPattern(const QVector<double> &dashPattern); +- QVector<double> dashPattern() const; ++ void setDashPattern(const QVector<float> &dashPattern); ++ QVector<float> dashPattern() const; + QPainterPath createStroke(const QPainterPath &path) const; + %If (Qt_4_3_0 -) + void setDashOffset(qreal offset); +diff --git a/sip/QtGui/qpen.sip b/sip/QtGui/qpen.sip +index 0d78d8f..0cefacd 100644 +--- a/sip/QtGui/qpen.sip ++++ b/sip/QtGui/qpen.sip +@@ -104,8 +104,8 @@ public: + void setCapStyle(Qt::PenCapStyle pcs); + Qt::PenJoinStyle joinStyle() const; + void setJoinStyle(Qt::PenJoinStyle pcs); +- QVector<double> dashPattern() const; +- void setDashPattern(const QVector<double> &pattern); ++ QVector<float> dashPattern() const; ++ void setDashPattern(const QVector<float> &pattern); + qreal miterLimit() const; + void setMiterLimit(qreal limit); + bool operator==(const QPen &p) const; +diff --git a/sip/QtGui/qtextoption.sip b/sip/QtGui/qtextoption.sip +index 2075e99..f748a63 100644 +--- a/sip/QtGui/qtextoption.sip ++++ b/sip/QtGui/qtextoption.sip +@@ -75,8 +75,8 @@ public: + typedef QFlags<QTextOption::Flag> Flags; + QFlags<QTextOption::Flag> flags() const; + qreal tabStop() const; +- void setTabArray(QList<double> tabStops); +- QList<double> tabArray() const; ++ void setTabArray(QList<float> tabStops); ++ QList<float> tabArray() const; + void setUseDesignMetrics(bool b); + bool useDesignMetrics() const; + void setAlignment(Qt::Alignment aalignment); diff --git a/recipes/python/python-pyqt/04_qreal_api_fixes.dpatch b/recipes/python/python-pyqt/04_qreal_api_fixes.dpatch new file mode 100644 index 0000000000..abd9e3f4cd --- /dev/null +++ b/recipes/python/python-pyqt/04_qreal_api_fixes.dpatch @@ -0,0 +1,259 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 04_qreal_api_fixes.dpatch by Torsten Marek <shlomme@debian.org> +## +## DP: Exchanges double by qreal in some wrapped methods. + +@DPATCH@ +diff -urNad python-qt4-4.3~/sip/QtCore/qlist.sip python-qt4-4.3/sip/QtCore/qlist.sip +--- python-qt4-4.3~/sip/QtCore/qlist.sip 2007-09-02 00:35:50.000000000 +0200 ++++ python-qt4-4.3/sip/QtCore/qlist.sip 2007-09-02 00:35:53.000000000 +0200 +@@ -322,8 +322,8 @@ + %End + }; + %If (Qt_4_3_0 -) +-// QList<QPair<double, double> > is implemented as a Python list of 2-element tuples. +-%MappedType QList<QPair<double, double> > ++// QList<QPair<float, float> > is implemented as a Python list of 2-element tuples. ++%MappedType QList<QPair<float, float> > + { + %TypeHeaderCode + #include <qlist.h> +@@ -340,7 +340,7 @@ + // Set the list elements. + for (int i = 0; i < sipCpp->size(); ++i) + { +- const QPair<double, double> &p = sipCpp->at(i); ++ const QPair<float, float> &p = sipCpp->at(i); + PyObject *pobj; + + if ((pobj = Py_BuildValue((char *)"dd", p.first, p.second)) == NULL) +@@ -370,16 +370,16 @@ + return 1; + } + +- QList<QPair<double, double> > *ql = new QList<QPair<double, double> >; ++ QList<QPair<float, float> > *ql = new QList<QPair<float, float> >; + + for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) + { + PyObject *tup = PyList_GET_ITEM(sipPy, i); + +- double first = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 0)); +- double second = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 1)); ++ float first = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 0)); ++ float second = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 1)); + +- ql->append(QPair<double, double>(first, second)); ++ ql->append(QPair<float, float>(first, second)); + } + + *sipCppPtr = ql; +@@ -389,9 +389,9 @@ + }; + %End + %If (Qt_4_3_0 -) +-// QList<QPair<double, TYPE> > is implemented as a Python list of 2-element tuples. +-template<double, TYPE> +-%MappedType QList<QPair<double, TYPE> > ++// QList<QPair<float, TYPE> > is implemented as a Python list of 2-element tuples. ++template<float, TYPE> ++%MappedType QList<QPair<float, TYPE> > + { + %TypeHeaderCode + #include <qlist.h> +@@ -408,7 +408,7 @@ + // Set the list elements. + for (int i = 0; i < sipCpp->size(); ++i) + { +- const QPair<double, TYPE> &p = sipCpp->at(i); ++ const QPair<float, TYPE> &p = sipCpp->at(i); + TYPE *t = new TYPE(p.second); + PyObject *pobj; + +@@ -447,12 +447,12 @@ + return 1; + } + +- QList<QPair<double, TYPE> > *ql = new QList<QPair<double, TYPE> >; ++ QList<QPair<float, TYPE> > *ql = new QList<QPair<float, TYPE> >; + + for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) + { + PyObject *tup = PyList_GET_ITEM(sipPy, i); +- double d; ++ float d; + int state; + + d = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 0)); +@@ -466,7 +466,7 @@ + return 0; + } + +- ql->append(QPair<double, TYPE>(d, *t)); ++ ql->append(QPair<float, TYPE>(d, *t)); + + sipReleaseInstance(t, sipClass_TYPE, state); + } +@@ -524,8 +524,8 @@ + return sipGetState(sipTransferObj); + %End + }; +-// QList<double> is implemented as a Python list of floats. +-%MappedType QList<double> ++// QList<float> is implemented as a Python list of floats. ++%MappedType QList<float> + { + %TypeHeaderCode + #include <qlist.h> +@@ -561,7 +561,7 @@ + if (sipIsErr == NULL) + return PyList_Check(sipPy); + +- QList<double> *ql = new QList<double>; ++ QList<float> *ql = new QList<float>; + + for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) + ql->append(PyFloat_AsDouble(PyList_GET_ITEM(sipPy, i))); +diff -urNad python-qt4-4.3~/sip/QtCore/qvector.sip python-qt4-4.3/sip/QtCore/qvector.sip +--- python-qt4-4.3~/sip/QtCore/qvector.sip 2007-09-02 00:35:50.000000000 +0200 ++++ python-qt4-4.3/sip/QtCore/qvector.sip 2007-09-02 00:35:53.000000000 +0200 +@@ -143,8 +143,8 @@ + return sipGetState(sipTransferObj); + %End + }; +-// QVector<double> is implemented as a Python list of floats. +-%MappedType QVector<double> ++// QVector<float> is implemented as a Python list of floats. ++%MappedType QVector<float> + { + %TypeHeaderCode + #include <qvector.h> +@@ -180,7 +180,7 @@ + if (sipIsErr == NULL) + return PyList_Check(sipPy); + +- QVector<double> *ql = new QVector<double>; ++ QVector<float> *ql = new QVector<float>; + + for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) + ql->append(PyFloat_AsDouble(PyList_GET_ITEM(sipPy, i))); +@@ -190,9 +190,9 @@ + return sipGetState(sipTransferObj); + %End + }; +-// QVector<QPair<double, TYPE> > is implemented as a Python list of 2-element tuples. ++// QVector<QPair<float, TYPE> > is implemented as a Python list of 2-element tuples. + template<TYPE> +-%MappedType QVector<QPair<double, TYPE> > ++%MappedType QVector<QPair<float, TYPE> > + { + %TypeHeaderCode + #include <qvector.h> +@@ -209,7 +209,7 @@ + // Set the list elements. + for (int i = 0; i < sipCpp->size(); ++i) + { +- const QPair<double, TYPE> &p = sipCpp->at(i); ++ const QPair<float, TYPE> &p = sipCpp->at(i); + TYPE *pt = new TYPE(p.second); + PyObject *pobj; + +@@ -248,14 +248,14 @@ + return 1; + } + +- QVector<QPair<double, TYPE> > *qv = new QVector<QPair<double, TYPE> >; ++ QVector<QPair<float, TYPE> > *qv = new QVector<QPair<float, TYPE> >; + + for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) + { + PyObject *tup = PyList_GET_ITEM(sipPy, i); + int state; + TYPE *s; +- QPair<double, TYPE> p; ++ QPair<float, TYPE> p; + + p.first = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 0)); + +diff -urNad python-qt4-4.3~/sip/QtGui/qbrush.sip python-qt4-4.3/sip/QtGui/qbrush.sip +--- python-qt4-4.3~/sip/QtGui/qbrush.sip 2007-09-02 00:35:50.000000000 +0200 ++++ python-qt4-4.3/sip/QtGui/qbrush.sip 2007-09-02 00:35:53.000000000 +0200 +@@ -138,7 +138,7 @@ + + QDataStream &operator>>(QDataStream &, QBrush & /Constrained/); + QDataStream &operator<<(QDataStream &, const QBrush & /Constrained/); +-typedef QVector<QPair<double, QColor> > QGradientStops; ++typedef QVector<QPair<float, QColor> > QGradientStops; + + class QGradient + { +diff -urNad python-qt4-4.3~/sip/QtGui/qgraphicsitemanimation.sip python-qt4-4.3/sip/QtGui/qgraphicsitemanimation.sip +--- python-qt4-4.3~/sip/QtGui/qgraphicsitemanimation.sip 2007-09-02 00:35:50.000000000 +0200 ++++ python-qt4-4.3/sip/QtGui/qgraphicsitemanimation.sip 2007-09-02 00:35:53.000000000 +0200 +@@ -64,19 +64,19 @@ + + public: + %If (Qt_4_3_0 -) +- QList<QPair<double, QPointF> > posList() const; ++ QList<QPair<float, QPointF> > posList() const; + %End + %If (Qt_4_3_0 -) +- QList<QPair<double, double> > rotationList() const; ++ QList<QPair<float, float> > rotationList() const; + %End + %If (Qt_4_3_0 -) +- QList<QPair<double, QPointF> > translationList() const; ++ QList<QPair<float, QPointF> > translationList() const; + %End + %If (Qt_4_3_0 -) +- QList<QPair<double, QPointF> > scaleList() const; ++ QList<QPair<float, QPointF> > scaleList() const; + %End + %If (Qt_4_3_0 -) +- QList<QPair<double, QPointF> > shearList() const; ++ QList<QPair<float, QPointF> > shearList() const; + %End + + private: +diff -urNad python-qt4-4.3~/sip/QtGui/qpainterpath.sip python-qt4-4.3/sip/QtGui/qpainterpath.sip +--- python-qt4-4.3~/sip/QtGui/qpainterpath.sip 2007-09-02 00:35:50.000000000 +0200 ++++ python-qt4-4.3/sip/QtGui/qpainterpath.sip 2007-09-02 00:35:53.000000000 +0200 +@@ -194,8 +194,8 @@ + void setCurveThreshold(qreal threshold); + qreal curveThreshold() const; + void setDashPattern(Qt::PenStyle); +- void setDashPattern(const QVector<double> &dashPattern); +- QVector<double> dashPattern() const; ++ void setDashPattern(const QVector<float> &dashPattern); ++ QVector<float> dashPattern() const; + QPainterPath createStroke(const QPainterPath &path) const; + %If (Qt_4_3_0 -) + void setDashOffset(qreal offset); +diff -urNad python-qt4-4.3~/sip/QtGui/qpen.sip python-qt4-4.3/sip/QtGui/qpen.sip +--- python-qt4-4.3~/sip/QtGui/qpen.sip 2007-09-02 00:35:50.000000000 +0200 ++++ python-qt4-4.3/sip/QtGui/qpen.sip 2007-09-02 00:35:53.000000000 +0200 +@@ -91,8 +91,8 @@ + void setCapStyle(Qt::PenCapStyle pcs); + Qt::PenJoinStyle joinStyle() const; + void setJoinStyle(Qt::PenJoinStyle pcs); +- QVector<double> dashPattern() const; +- void setDashPattern(const QVector<double> &pattern); ++ QVector<float> dashPattern() const; ++ void setDashPattern(const QVector<float> &pattern); + qreal miterLimit() const; + void setMiterLimit(qreal limit); + bool operator==(const QPen &p) const; +diff -urNad python-qt4-4.3~/sip/QtGui/qtextoption.sip python-qt4-4.3/sip/QtGui/qtextoption.sip +--- python-qt4-4.3~/sip/QtGui/qtextoption.sip 2007-09-02 00:35:50.000000000 +0200 ++++ python-qt4-4.3/sip/QtGui/qtextoption.sip 2007-09-02 00:35:53.000000000 +0200 +@@ -62,8 +62,8 @@ + typedef QFlags<QTextOption::Flag> Flags; + QFlags<QTextOption::Flag> flags() const; + qreal tabStop() const; +- void setTabArray(QList<double> tabStops); +- QList<double> tabArray() const; ++ void setTabArray(QList<float> tabStops); ++ QList<float> tabArray() const; + void setUseDesignMetrics(bool b); + bool useDesignMetrics() const; + void setAlignment(Qt::Alignment aalignment); diff --git a/recipes/python/python-pyqt/assistantclient-fix.patch b/recipes/python/python-pyqt/assistantclient-fix.patch new file mode 100644 index 0000000000..eef0847c7c --- /dev/null +++ b/recipes/python/python-pyqt/assistantclient-fix.patch @@ -0,0 +1,13 @@ +Index: PyQt-x11-gpl-4.3.3/sip/QtAssistant/qassistantclient.sip +=================================================================== +--- PyQt-x11-gpl-4.3.3.orig/sip/QtAssistant/qassistantclient.sip 2008-01-07 13:31:35.000000000 +0100 ++++ PyQt-x11-gpl-4.3.3/sip/QtAssistant/qassistantclient.sip 2008-01-07 13:32:20.000000000 +0100 +@@ -26,7 +26,7 @@ + { + + %TypeHeaderCode +-#include <qassistantclient.h> ++#include <QtAssistant/qassistantclient.h> + %End + + %ConvertToSubClassCode diff --git a/recipes/python/python-pyqt/cross-compile.patch b/recipes/python/python-pyqt/cross-compile.patch new file mode 100644 index 0000000000..fb1524c09d --- /dev/null +++ b/recipes/python/python-pyqt/cross-compile.patch @@ -0,0 +1,33 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- PyQt4-gpl-4.0beta1/configure.py~cross-compile.patch ++++ PyQt4-gpl-4.0beta1/configure.py +@@ -471,7 +471,7 @@ + sipconfig.error("Unable to create the %s directory." % mname) + + # Build the SIP command line. +- argv = ['"' + sipcfg.sip_bin + '"'] ++ argv = ['"' + sipcfg.sip_bin + '4"'] + + argv.extend(qt_sip_flags) + +@@ -846,7 +846,15 @@ + """Set the qt_dir, qt_incdir, qt_libdir, qt_bindir and qt_datadir globals + for the Qt installation. + """ +- sipconfig.inform("Determining the layout of your Qt installation...") ++ sipconfig.inform("Determining the layout of your Qt installation... - patched for OpenEmbedded by :M:") ++ ++ global qt_dir, qt_incdir, qt_libdir, qt_bindir, qt_datadir ++ qt_dir = os.getenv( "QTDIR" ) ++ qt_incdir = "%s/include" % qt_dir ++ qt_libdir = "%s/lib" % qt_dir ++ qt_bindir = "%s/bin" % qt_dir ++ qt_datadir = "%s/share" % qt_dir ++ return + + if not opt_qmake: + sipconfig.error("Make sure you have a working Qt v4 qmake on your PATH or use the -q argument to explicitly specify a working Qt v4 qmake.") diff --git a/recipes/python/python-pyqt_4.4.3.bb b/recipes/python/python-pyqt_4.4.3.bb new file mode 100644 index 0000000000..08a8fc6683 --- /dev/null +++ b/recipes/python/python-pyqt_4.4.3.bb @@ -0,0 +1,73 @@ +DESCRIPTION = "Python Qt4 Bindings" +HOMEPAGE = "http://riverbankcomputing.co.uk" +AUTHOR = "Phil Thomson @ riverbank.co.uk" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +DEPENDS = "sip-native python-sip" +RDEPENDS = "python-core" +SRCNAME = "pyqt" +PR = "ml4" + +PYQT_OE_VERSION = "Qt_4_4_1" + +SRC_URI = "\ + http://cvs.fedora.redhat.com/repo/pkgs/PyQt4/PyQt-x11-gpl-4.4.3.tar.gz/89e84c36a8520bf8b3a8a2b20e765154/PyQt-x11-gpl-4.4.3.tar.gz \ + file://cross-compile.patch;patch=1 \ + file://01_configure.dpatch;patch=1 \ + file://02_htmllinks.dpatch;patch=1 \ + file://03_qreal.dpatch;patch=1 \ + file://04_qreal_api_fixes-for-4.4.3.dpatch;patch=1 \ + \ + file://assistantclient-fix.patch;patch=1 \ +" +S = "${WORKDIR}/PyQt-x11-gpl-${PV}" + +inherit qt4x11 sip distutils-base + +PARALLEL_MAKE = "" + +QMAKE_PROFILES = "pyqt.pro" +# NOTE: match with qt version we have in OE +EXTRA_SIPTAGS = "-tWS_X11 -t${PYQT_OE_VERSION} -xVendorID -xPyQt_SessionManager -xPyQt_Accessibility" +EXTRA_OEMAKE = " MAKEFLAGS= " + +SIP_MODULES = "QtCore QtGui QtNetwork QtSql QtSvg QtXml QtAssistant QtWebKit" +EXTRA_QMAKEVARS_POST += "INCLUDEPATH+=${OE_QMAKE_INCDIR_QT}/Qt \ + INCLUDEPATH+=${STAGING_INCDIR}/${PYTHON_DIR}" + +FIX_QREAL = "\ +" + +do_generate_prepend() { + for i in ${FIX_QREAL}; do + sed -i -e s,qreal,float,g sip/$i + done +} + +do_configure_prepend() { + printf "TEMPLATE=subdirs\nSUBDIRS=${SIP_MODULES}\n" >pyqt.pro +} + +do_stage() { + install -d ${STAGING_SIPDIR}/qt/ + install -d ${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages + for module in ${SIP_MODULES} + do + install -m 0644 ${S}/sip/${module}/*.sip ${STAGING_SIPDIR}/qt/ + install -m 0755 ${module}/lib${module}.so ${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/${module}.so + done +} + +do_install() { + install -d ${D}${libdir}/${PYTHON_DIR}/site-packages/PyQt4 + for module in ${SIP_MODULES} + do + echo "from PyQt4.${module} import *\n" >> ${D}${libdir}/${PYTHON_DIR}/site-packages/PyQt4/Qt.py + install -m 0755 ${module}/lib${module}.so ${D}${libdir}/${PYTHON_DIR}/site-packages/PyQt4/${module}.so + done + cp -pPR elementtree ${D}${libdir}/${PYTHON_DIR}/site-packages/PyQt4/ + cp __init__.py ${D}${libdir}/${PYTHON_DIR}/site-packages/PyQt4/ +} + +FILES_${PN} = "${libdir}/${PYTHON_DIR}/site-packages" diff --git a/recipes/python/python-pyrad_1.1.bb b/recipes/python/python-pyrad_1.1.bb new file mode 100644 index 0000000000..a6b8e15fb3 --- /dev/null +++ b/recipes/python/python-pyrad_1.1.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Python Radius Client and Server" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "BSD" +RDEPENDS = "python-crypt" +SRCNAME = "pyrad" +PR = "r1" + +SRC_URI = "http://pypi.python.org/packages/source/p/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit setuptools diff --git a/recipes/python/python-pyraf_1.7.bb b/recipes/python/python-pyraf_1.7.bb new file mode 100644 index 0000000000..d5f92e6c3e --- /dev/null +++ b/recipes/python/python-pyraf_1.7.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "PyRAF is a Python-based interface to IRAF." +HOMEPAGE = "http://www.stsci.edu/resources/software_hardware/pyraf" +AUTHOR = "Space Telescope Science Institute" +SECTION = "devel/python" +LICENSE = "AURA" +PR = "ml0" + +SRC_URI = "ftp://ra.stsci.edu/pub/pyraf/release/pyraf-${PV}.tar.gz" +S = "${WORKDIR}/pyraf-${PV}" + +inherit distutils + +RDEPENDS = "python-numarray" + diff --git a/recipes/python/python-pyreverse/fix-future.patch b/recipes/python/python-pyreverse/fix-future.patch new file mode 100644 index 0000000000..2bcba0dd39 --- /dev/null +++ b/recipes/python/python-pyreverse/fix-future.patch @@ -0,0 +1,16 @@ +Index: pyreverse-0.5.2/setup.py +=================================================================== +--- pyreverse-0.5.2.orig/setup.py ++++ pyreverse-0.5.2/setup.py +@@ -17,10 +17,10 @@ + # this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + """ Generic Setup script, takes package info from __pkginfo__.py file """ ++from __future__ import nested_scopes + + __revision__ = '$Id: setup.py,v 1.17 2005/01/05 11:40:41 syt Exp $' + +-from __future__ import nested_scopes + import os + import sys + import shutil diff --git a/recipes/python/python-pyrex-native_0.9.8.5.bb b/recipes/python/python-pyrex-native_0.9.8.5.bb new file mode 100644 index 0000000000..4405212040 --- /dev/null +++ b/recipes/python/python-pyrex-native_0.9.8.5.bb @@ -0,0 +1,10 @@ +require python-pyrex_${PV}.bb +inherit native +DEPENDS = "python-native" +RDEPENDS = "" + +do_stage() { + BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ + STAGING_LIBDIR=${STAGING_LIBDIR} STAGING_INCDIR=${STAGING_INCDIR} \ + ${STAGING_BINDIR}/python setup.py install --prefix=${STAGING_BINDIR}/.. --install-data=${STAGING_DATADIR} +} diff --git a/recipes/python/python-pyrex_0.9.8.5.bb b/recipes/python/python-pyrex_0.9.8.5.bb new file mode 100644 index 0000000000..94db79341e --- /dev/null +++ b/recipes/python/python-pyrex_0.9.8.5.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://nz.cosc.canterbury.ac.nz/~greg/python/${SRCNAME}/${SRCNAME}-${PV}.tar.gz \ + file://pyrex-fix-optimized-mode.patch;patch=1 \ +" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-pyro/pyro-unattended-install.patch b/recipes/python/python-pyro/pyro-unattended-install.patch new file mode 100644 index 0000000000..4a14ef2310 --- /dev/null +++ b/recipes/python/python-pyro/pyro-unattended-install.patch @@ -0,0 +1,16 @@ + +--- setup.cfg~pyro-unattended-install ++++ setup.cfg +@@ -4,9 +4,9 @@ + ### Enable the following two items for unattended install. + ### The scripts location is mandatory. Change it so something sensible. + +-#[install-options] +-#unattended=1 ++[install-options] ++unattended=1 + + [install] + optimize=1 +-#install-scripts=/foo/bar ++install-scripts= ../image/usr/lib/python2.4 diff --git a/recipes/python/python-pyro_3.8.1.bb b/recipes/python/python-pyro_3.8.1.bb new file mode 100644 index 0000000000..695d8fb7aa --- /dev/null +++ b/recipes/python/python-pyro_3.8.1.bb @@ -0,0 +1,31 @@ +DESCRIPTION = "Pyro is an acronym for PYthon Remote Objects. \ +It is an advanced and powerful Distributed Object Technology \ +system written entirely in Python, that is designed to be very \ +easy to use, and is small simple and free. Written by Irmen de Jong." +HOMEPAGE = "http://pyro.sourceforge.net" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "MIT" +PR = "ml0" + +SRC_URI = "\ + ${SOURCEFORGE_MIRROR}/pyro/Pyro-${PV}.tar.gz \ + file://pyro-unattended-install.patch;patch=1;pnum=0 \ +" +S = "${WORKDIR}/Pyro-${PV}" + +inherit distutils + +RDEPENDS = "\ + python-crypt \ + python-io \ + python-lang \ + python-math \ + python-netserver \ + python-pickle \ + python-re \ + python-shell \ + python-stringold \ + python-threading \ +" + diff --git a/recipes/python/python-pyrtc_git.bb b/recipes/python/python-pyrtc_git.bb new file mode 100644 index 0000000000..af3bcfd5e4 --- /dev/null +++ b/recipes/python/python-pyrtc_git.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "PyRTC is a python extension module that supports talking to the \ +RTC (Real Time Clock) found in most PCs and SOCs" +SECTION = "devel/python" +HOMEPAGE = "http://www.freesmartphone.org" +AUTHOR = "Michael 'Mickey' Lauer <mlauer@vanille-media.de>" +LICENSE = "GPLv2" +SRCNAME = "pyrtc" +DEPENDS = "python-cython-native" +PV = "1.0.0+gitr${SRCREV}" +PR = "ml1" + +SRC_URI = "git://git.freesmartphone.org/python-helpers.git;protocol=git;branch=master" +S = "${WORKDIR}/git/${SRCNAME}" + +inherit distutils + diff --git a/recipes/python/python-pyserial_2.4.bb b/recipes/python/python-pyserial_2.4.bb new file mode 100644 index 0000000000..637a980e49 --- /dev/null +++ b/recipes/python/python-pyserial_2.4.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "Serial Port Support for Python" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "PSF" +SRCNAME = "pyserial" +PR = "ml1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit setuptools + +# FIXME might stop packaging serialwin32 and serialjava files + +RDEPENDS = "\ + python-fcntl \ + python-io \ + python-stringold \ +" diff --git a/recipes/python/python-pysqlite2/fix-setup.patch b/recipes/python/python-pysqlite2/fix-setup.patch new file mode 100644 index 0000000000..fb732a1c3d --- /dev/null +++ b/recipes/python/python-pysqlite2/fix-setup.patch @@ -0,0 +1,9 @@ +diff -urN pysqlite-2.4.0.orig/setup.cfg pysqlite-2.4.0/setup.cfg +--- pysqlite-2.4.0.orig/setup.cfg 2007-11-25 17:56:17.000000000 +0100 ++++ pysqlite-2.4.0/setup.cfg 2007-12-07 09:59:36.000000000 +0100 +@@ -1,5 +1,3 @@ + [build_ext] + define= +-include_dirs=/usr/include +-library_dirs=/usr/lib + libraries=sqlite3 diff --git a/recipes/python/python-pysqlite2_2.4.0.bb b/recipes/python/python-pysqlite2_2.4.0.bb new file mode 100644 index 0000000000..24b2668ec4 --- /dev/null +++ b/recipes/python/python-pysqlite2_2.4.0.bb @@ -0,0 +1,32 @@ +DESCRIPTION = "Python interface to SQLite 3" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "BSD" +DEPENDS = "sqlite3" +SRCNAME = "pysqlite" +PR = "ml2" + +SRC_URI = "http://initd.org/pub/software/pysqlite/releases/2.4/${PV}/${SRCNAME}-${PV}.tar.gz \ + file://fix-setup.patch;patch=1" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +do_install_append() { + install -d ${D}${datadir}/doc/ + mv ${D}${datadir}/pysqlite2-doc ${D}${datadir}/doc/${PN} +} + +RDEPENDS = "\ + python-datetime \ + python-lang \ + python-crypt \ + python-io \ + python-threading \ + python-unittest \ + python-zlib \ +" + +PACKAGES =+ "${PN}-tests" +FILES_${PN}-tests = "${libdir}/${PYTHON_DIR}/pysqlite2/test" +RDEPENDS_${PN}-tests = "${PN}" diff --git a/recipes/python/python-pytester_0.6.0.bb b/recipes/python/python-pytester_0.6.0.bb new file mode 100644 index 0000000000..8c9927f530 --- /dev/null +++ b/recipes/python/python-pytester_0.6.0.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "This is a small package that facilitates the unit testing process \ +by aggregating PyUnit tests and making them easier to call from the command \ +line and from within other unit tests." +SECTION = "devel/python" +HOMEPAGE = "http://oss.wxnet.org/pytester/index.html" +PRIORITY = "optional" +LICENSE = "GPL" +SRCNAME = "pytester" +PR = "ml1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/meta-tools/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-pyusb_0.4.1.bb b/recipes/python/python-pyusb_0.4.1.bb new file mode 100644 index 0000000000..9ed3955c2e --- /dev/null +++ b/recipes/python/python-pyusb_0.4.1.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "libusb Python Bindings" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "BSD" +DEPENDS = "libusb" +SRCNAME = "pyusb" +PR = "r1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-pyvisa_1.3.bb b/recipes/python/python-pyvisa_1.3.bb new file mode 100644 index 0000000000..90bb00ef73 --- /dev/null +++ b/recipes/python/python-pyvisa_1.3.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "A Python package with bindings to the 'Virtual Instrument Software Architecture' \ +(VISA) library, in order to control measurement devices and test equipment via GPIB, RS232, or USB." +SECTION = "devel/python" +HOMEPAGE = "http://pyvisa.sourceforge.net/" +PRIORITY = "optional" +LICENSE = "BSD" +SRCNAME = "PyVISA" +PR = "ml0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/pyvisa/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit setuptools + +export HOME=/tmp/foo diff --git a/recipes/python/python-pyweather_0.7.0.bb b/recipes/python/python-pyweather_0.7.0.bb new file mode 100644 index 0000000000..9b98804ba3 --- /dev/null +++ b/recipes/python/python-pyweather_0.7.0.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "PyWeather is a collection of weather related modules \ +that are capable of performing conversion calculations for many common meteorological units." +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +SRCNAME = "weather" +PR = "ml1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/meta-tools/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-pyxdg_0.15.bb b/recipes/python/python-pyxdg_0.15.bb new file mode 100644 index 0000000000..31c6f21ab4 --- /dev/null +++ b/recipes/python/python-pyxdg_0.15.bb @@ -0,0 +1,9 @@ +DESCRIPTION = "PyXDG is a python library to access freedesktop.org standards" +SECTION = "devel/python" +LICENSE = "GPL" +PR = "r1" + +SRC_URI = "http://www.freedesktop.org/~lanius/pyxdg-${PV}.tar.gz" +S = "${WORKDIR}/pyxdg-${PV}" + +inherit distutils diff --git a/recipes/python/python-pyxml_0.8.4.bb b/recipes/python/python-pyxml_0.8.4.bb new file mode 100644 index 0000000000..68eb7a3bb4 --- /dev/null +++ b/recipes/python/python-pyxml_0.8.4.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "A sophisticated XML Processing Package for Python" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "PSF" +SRCNAME = "pyxml" +PR = "ml1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/pyxml/PyXML-${PV}.tar.gz" +S = "${WORKDIR}/PyXML-${PV}" + +inherit distutils + +RDEPENDS = "python-xml python-netclient" + diff --git a/recipes/python/python-pyxmlrpc_0.8.8.3.bb b/recipes/python/python-pyxmlrpc_0.8.8.3.bb new file mode 100644 index 0000000000..dea1989994 --- /dev/null +++ b/recipes/python/python-pyxmlrpc_0.8.8.3.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "Fast Python XMLRPC Library" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "LGPL" +SRCNAME = "py-xmlrpc" +PR = "r1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-pyyaml/setup.py b/recipes/python/python-pyyaml/setup.py new file mode 100644 index 0000000000..fb64983419 --- /dev/null +++ b/recipes/python/python-pyyaml/setup.py @@ -0,0 +1,64 @@ +NAME = 'PyYAML' +VERSION = '3.06' +DESCRIPTION = "YAML parser and emitter for Python" +LONG_DESCRIPTION = """\ +YAML is a data serialization format designed for human readability and +interaction with scripting languages. PyYAML is a YAML parser and +emitter for Python. + +PyYAML features a complete YAML 1.1 parser, Unicode support, pickle +support, capable extension API, and sensible error messages. PyYAML +supports standard YAML tags and provides Python-specific tags that allow +to represent an arbitrary Python object. + +PyYAML is applicable for a broad range of tasks from complex +configuration files to object serialization and persistance.""" +AUTHOR = "Kirill Simonov" +AUTHOR_EMAIL = 'xi@resolvent.net' +LICENSE = "MIT" +PLATFORMS = "Any" +URL = "http://pyyaml.org/wiki/PyYAML" +DOWNLOAD_URL = "http://pyyaml.org/download/pyyaml/%s-%s.tar.gz" % (NAME, VERSION) +CLASSIFIERS = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Programming Language :: Python", + "Topic :: Software Development :: Libraries :: Python Modules", + "Topic :: Text Processing :: Markup", +] + +from distutils.core import setup +from distutils.extension import Extension +from Cython.Distutils import build_ext + +import sys, os.path + + +if __name__ == '__main__': + + setup( + name=NAME, + version=VERSION, + description=DESCRIPTION, + long_description=LONG_DESCRIPTION, + author=AUTHOR, + author_email=AUTHOR_EMAIL, + license=LICENSE, + platforms=PLATFORMS, + url=URL, + download_url=DOWNLOAD_URL, + classifiers=CLASSIFIERS, + + package_dir={'': 'lib'}, + packages=['yaml'], + + ext_modules = [ + Extension( "_yaml", ["ext/_yaml.pyx"], libraries = ["yaml"] ) + ], + + cmdclass={ + 'build_ext': build_ext, + }, + ) diff --git a/recipes/python/python-pyyaml_svn.bb b/recipes/python/python-pyyaml_svn.bb new file mode 100644 index 0000000000..0aed0b0e62 --- /dev/null +++ b/recipes/python/python-pyyaml_svn.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Python support for YAML" +HOMEPAGE = "http://www.pyyaml.org" +SECTION = "devel/python" +LICENSE = "MIT" +DEPENDS = "libyaml python-cython-native" +PV = "3.08+svnr${SRCREV}" +PR = "ml0" + +SRC_URI = "\ + svn://svn.pyyaml.org/pyyaml;module=trunk;proto=http \ + file://setup.py \ +" +S = "${WORKDIR}/trunk" + +inherit distutils + +do_configure_prepend() { + # upstream setup.py overcomplicated, use ours + install -m 0644 ${WORKDIR}/setup.py ${S} +} diff --git a/recipes/python/python-pyzeroconf_0.12.bb b/recipes/python/python-pyzeroconf_0.12.bb new file mode 100644 index 0000000000..4a8a9b018e --- /dev/null +++ b/recipes/python/python-pyzeroconf_0.12.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "A pure Python implementation of Zeroconf" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "LGPL" +PR = "r1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/pyzeroconf/pyzeroconf-${PV}.tgz" +S = "${WORKDIR}/pyzeroconf-${PV}" + +inherit distutils-base + +do_install() { + install -d ${D}${libdir} + install -d ${D}${libdir}/${PYTHON_DIR} + install -d ${D}${libdir}/${PYTHON_DIR}/site-packages + + install -m 0644 Zeroconf.py ${D}${libdir}/${PYTHON_DIR}/site-packages/ +} diff --git a/recipes/python/python-rpyc_3.02.bb b/recipes/python/python-rpyc_3.02.bb new file mode 100644 index 0000000000..d79f0d00a5 --- /dev/null +++ b/recipes/python/python-rpyc_3.02.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "RPyC is a Remote Procedure Call Package for Python" +SECTION = "devel/python" +HOMEPAGE = "http://rpyc.wikizone.com" +LICENSE = "GPL" +SRCNAME = "rpyc" +PR = "ml0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/rpyc/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-scapy_2.0.0.9.bb b/recipes/python/python-scapy_2.0.0.9.bb new file mode 100644 index 0000000000..ebe1223418 --- /dev/null +++ b/recipes/python/python-scapy_2.0.0.9.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Scapy is a powerful interactive packet manipulation tool, \ +packet generator, network scanner, network discovery, packet sniffer, etc. \ +It can for the moment replace hping, 85% of nmap, arpspoof, arp-sk, arping, \ +tcpdump, tethereal, p0f, ...." +SECTION = "devel/python" +HOMEPAGE = "http://www.secdev.org/projects/scapy/" +LICENSE = "GPL" +PRIORITY = "optional" +SRCNAME = "scapy" +PR = "ml1" + +SRC_URI = "http://www.secdev.org/projects/scapy/files/scapy-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +RDEPENDS = "\ + python-netclient \ + python-netserver \ +" diff --git a/recipes/python/python-scons-native_1.2.0.bb b/recipes/python/python-scons-native_1.2.0.bb new file mode 100644 index 0000000000..31bce5583d --- /dev/null +++ b/recipes/python/python-scons-native_1.2.0.bb @@ -0,0 +1,14 @@ +require python-scons_${PV}.bb +inherit native +DEPENDS = "python-native" +RDEPENDS = "" + +do_stage() { + BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ + ${STAGING_BINDIR}/python setup.py install --prefix=${STAGING_LIBDIR}/.. --install-data=${STAGING_DATADIR} || \ + oefatal "python setup.py install execution failed." +} + +do_install() { + : +} diff --git a/recipes/python/python-scons_1.2.0.bb b/recipes/python/python-scons_1.2.0.bb new file mode 100644 index 0000000000..dc5b40243e --- /dev/null +++ b/recipes/python/python-scons_1.2.0.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "A Software Construction Tool" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +SRCNAME = "scons" + +SRC_URI = "${SOURCEFORGE_MIRROR}/scons/scons-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-setuptools-native_0.6c9.bb b/recipes/python/python-setuptools-native_0.6c9.bb new file mode 100644 index 0000000000..0bbf9c32fc --- /dev/null +++ b/recipes/python/python-setuptools-native_0.6c9.bb @@ -0,0 +1,9 @@ +require python-setuptools_${PV}.bb +inherit native + +FILESPATH = "${FILE_DIRNAME}/python-setuptools" +DEPENDS = "python-native" + +do_stage() { + distutils_stage_all +} diff --git a/recipes/python/python-setuptools/fix-log-usage.patch b/recipes/python/python-setuptools/fix-log-usage.patch new file mode 100644 index 0000000000..6363c850c2 --- /dev/null +++ b/recipes/python/python-setuptools/fix-log-usage.patch @@ -0,0 +1,13 @@ +Index: setuptools-0.6c8/setuptools/command/sdist.py +=================================================================== +--- setuptools-0.6c8.orig/setuptools/command/sdist.py ++++ setuptools-0.6c8/setuptools/command/sdist.py +@@ -95,7 +95,7 @@ def entries_finder(dirname, filename): + for match in entries_pattern.finditer(data): + yield joinpath(dirname,unescape(match.group(1))) + else: +- log.warn("unrecognized .svn/entries format in %s", dirname) ++ print ("unrecognized .svn/entries format in %s", dirname) + + + finders = [ diff --git a/recipes/python/python-setuptools_0.6c9.bb b/recipes/python/python-setuptools_0.6c9.bb new file mode 100644 index 0000000000..179129eb60 --- /dev/null +++ b/recipes/python/python-setuptools_0.6c9.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "Download, build, install, upgrade, and uninstall Python packages" +HOMEPAGE = "http://cheeseshop.python.org/pypi/setuptools" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "MIT" +RDEPENDS = "python-distutils python-compression" +SRCNAME = "setuptools" +PR = "ml0" + +SRC_URI = "\ + http://cheeseshop.python.org/packages/source/s/setuptools/${SRCNAME}-${PV}.tar.gz\ + file://fix-log-usage.patch;patch=1 \ +" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +do_install_prepend() { + install -d ${D}/${libdir}/${PYTHON_DIR}/site-packages +} + +RDEPENDS = "\ + python-distutils \ + python-compression \ +" diff --git a/recipes/python/python-sgmlop_1.1.bb b/recipes/python/python-sgmlop_1.1.bb new file mode 100644 index 0000000000..dab075cc3b --- /dev/null +++ b/recipes/python/python-sgmlop_1.1.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "Pythonware Fast SGML Parser for Python" +SECTION = "devel/python" +PRIORITY = "optional" +SRCNAME = "sgmlop" +LICENSE = "${PN}" + +inherit distutils + +SRC_URI = "http://www.vanille.de/mirror/${SRCNAME}-${PV}.tar.bz2" +S = "${WORKDIR}/${SRCNAME}-${PV}" diff --git a/recipes/python/python-simplejson_2.0.7.bb b/recipes/python/python-simplejson_2.0.7.bb new file mode 100644 index 0000000000..7bfa44eb8e --- /dev/null +++ b/recipes/python/python-simplejson_2.0.7.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Simple, fast, extensible JSON encoder/decoder for Python" +HOMEPAGE = "http://cheeseshop.python.org/pypi/simplejson" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "MIT" +SRCNAME = "simplejson" +PR = "ml0" + +SRC_URI = "http://cheeseshop.python.org/packages/source/s/simplejson/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit setuptools + +RDEPENDS = "\ + python-core \ + python-re \ + python-io \ + python-netserver \ +" + diff --git a/recipes/python/python-sip.inc b/recipes/python/python-sip.inc new file mode 100644 index 0000000000..1267d07f59 --- /dev/null +++ b/recipes/python/python-sip.inc @@ -0,0 +1,42 @@ +DESCRIPTION = "Runtime helper for sip-generated python wrapper libraries" +SECTION = "devel/python" +HOMEPAGE = "http://www.riverbankcomputing.co.uk/sip" +AUTHOR = "Phil Thompson" +LICENSE = "GPL" +DEPENDS = "python" +RDEPENDS = "python-core" + +SRC_URI = "http://www.riverbankcomputing.com/static/Downloads/sip4/sip-${PV}.tar.gz" + +S = "${WORKDIR}/sip-${PV}/siplib" + +inherit qt4x11 distutils-base + +EXTRA_QMAKEVARS_POST += " TEMPLATE=lib \ + CONFIG=console \ + DESTDIR= \ + VERSION=1.0.0 \ + TARGET=sip \ + DEFINES=SIP_QT_SUPPORT \ + INCLUDEPATH+=. \ + INCLUDEPATH+=${STAGING_INCDIR}/${PYTHON_DIR} \ + INCLUDEPATH+=${STAGING_INCDIR}" + + +do_configure_prepend() { + cat siplib.sbf | sed s,target,TARGET, | sed s,sources,SOURCES, | sed s,headers,HEADERS, > siplib.pro +} + +do_stage() { + install -d ${STAGING_LIBDIR_NATIVE}/${PYTHON_DIR}/site-packages/ + # sipconfig.py sipdistutils.py + install -m 0644 sip.h ${STAGING_INCDIR}/sip.h +} + +do_install() { + install -d ${D}${libdir}/${PYTHON_DIR}/site-packages/ + install -m 0755 libsip.so.1.0.0 ${D}${libdir}/${PYTHON_DIR}/site-packages/sip.so +} + +FILES_${PN} = "${libdir}/${PYTHON_DIR}/site-packages/sip.so" + diff --git a/recipes/python/python-sip_4.7.9.bb b/recipes/python/python-sip_4.7.9.bb new file mode 100644 index 0000000000..db88ba974b --- /dev/null +++ b/recipes/python/python-sip_4.7.9.bb @@ -0,0 +1,2 @@ +require python-sip.inc +PR = "ml0" diff --git a/recipes/python/python-soappy/fix-future.patch b/recipes/python/python-soappy/fix-future.patch new file mode 100644 index 0000000000..6c14e32c16 --- /dev/null +++ b/recipes/python/python-soappy/fix-future.patch @@ -0,0 +1,54 @@ +Index: SOAPpy-0.11.6/SOAPpy/Client.py +=================================================================== +--- SOAPpy-0.11.6.orig/SOAPpy/Client.py ++++ SOAPpy-0.11.6/SOAPpy/Client.py +@@ -39,12 +39,11 @@ + # + ################################################################################ + """ ++from __future__ import nested_scopes + + ident = '$Id: Client.py,v 1.20 2004/04/10 04:22:52 irjudson Exp $' + from version import __version__ + +-from __future__ import nested_scopes +- + #import xml.sax + import urllib + from types import * +Index: SOAPpy-0.11.6/SOAPpy/Types.py +=================================================================== +--- SOAPpy-0.11.6.orig/SOAPpy/Types.py ++++ SOAPpy-0.11.6/SOAPpy/Types.py +@@ -32,12 +32,11 @@ + # + ################################################################################ + """ ++from __future__ import nested_scopes + + ident = '$Id: Types.py,v 1.17 2004/09/11 03:03:33 warnes Exp $' + from version import __version__ + +-from __future__ import nested_scopes +- + import UserList + import base64 + import cgi +Index: SOAPpy-0.11.6/SOAPpy/Server.py +=================================================================== +--- SOAPpy-0.11.6.orig/SOAPpy/Server.py ++++ SOAPpy-0.11.6/SOAPpy/Server.py +@@ -39,12 +39,11 @@ + # + ################################################################################ + """ ++from __future__ import nested_scopes + + ident = '$Id: Server.py,v 1.20 2004/04/28 21:47:10 warnes Exp $' + from version import __version__ + +-from __future__ import nested_scopes +- + #import xml.sax + import re + import socket diff --git a/recipes/python/python-soappy/fpconst.py b/recipes/python/python-soappy/fpconst.py new file mode 100644 index 0000000000..a1f8f47e3a --- /dev/null +++ b/recipes/python/python-soappy/fpconst.py @@ -0,0 +1,111 @@ +"""Utilities for handling IEEE 754 floating point special values + +This python module implements constants and functions for working with +IEEE754 double-precision special values. It provides constants for +Not-a-Number (NaN), Positive Infinity (PosInf), and Negative Infinity +(NegInf), as well as functions to test for these values. + +The code is implemented in pure python by taking advantage of the +'struct' standard module. Care has been taken to generate proper +results on both big-endian and little-endian machines. Some efficiency +could be gained by translating the core routines into C. + +See <http://babbage.cs.qc.edu/courses/cs341/IEEE-754references.html> +for reference material on the IEEE 754 floating point standard. + +Further information on this package is available at +<http://software.biostat.washington.edu/statsoft/snake/fpconst>. + +Author: Gregory R. Warnes <gregory_r_warnes@groton.pfizer.com> +Date:: 2003-04-08 +Copyright: (c) 2003, Pfizer, Inc. +""" + +__version__ = "0.6.0" +ident = "$Id: fpconst.py,v 1.8 2003/05/12 15:14:00 warnes Exp $" + +import struct + +# check endianess +_big_endian = struct.pack('i',1)[0] != '\x01' + +# and define appropriate constants +if(_big_endian): + _HW = 0 + _LW = 1 + + NaN = struct.unpack('d', '\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF')[0] + PosInf = struct.unpack('d', '\x7F\xF0\x00\x00\x00\x00\x00\x00')[0] + NegInf = -PosInf + +else: + _HW = 1 + _LW = 0 + + NaN = struct.unpack('d', '\x00\x00\x00\x00\x00\x00\xf8\xff')[0] + PosInf = struct.unpack('d', '\x00\x00\x00\x00\x00\x00\xf0\x7f')[0] + NegInf = -PosInf + +def _double_as_longs(dval): + "Use struct.unpack to decode a double precision float into two longs" + tmp = struct.unpack('ll',struct.pack('d', dval)) + return (tmp[_HW], tmp[_LW]) + + +## +## Functions to extract components of the IEEE 754 floating point format +## + +def _sign(dval): + "Extract the sign bit from a double-precision floating point value" + ll = _double_as_longs(dval) + return ll[0] >> 31 & 0x01 + +def _exponent(dval): + """Extract the exponentent bits from a double-precision floating + point value. + + Note that for normalized values, the exponentdent bits have an offset + of 1023. As a consequence, the actual exponentent is obtained + by subtracting 1023 for the value returned by this function + """ + ll = _double_as_longs(dval) + return (ll[0] >> 20) & 0x7ff + +def _mantissa(dval): + """Extract the _mantissa bits from a double-precision floating + point value.""" + + ll = _double_as_longs(dval) + mantissa0 = (ll[0] & 0x000fffffL) << 32 + mantissa1 = ll[1] + return mantissa0 + mantissa1 + +## +## Functions to test for IEEE 754 special values +## + +def isNaN(value): + "Determine if the argument is a IEEE 754 NaN (Not a Number) value." + return (_exponent(value)==0x7ff and _mantissa(value)!=0) + +def isInf(value): + """Determine if the argument is an infinite IEEE 754 value (positive + or negative inifinity)""" + return (_exponent(value)==0x7ff and _mantissa(value)== 0) + +def isFinite(value): + """Determine if the argument is an finite IEEE 754 value (i.e., is + not NaN, positive or negative inifinity)""" + return (_exponent(value)!=0x7ff) + + +def isPosInf(value): + "Determine if the argument is a IEEE 754 positive infinity value" + return (_sign(value)==0 and _exponent(value)==0x7ff and \ + _mantissa(value)== 0) + +def isNegInf(value): + "Determine if the argument is a IEEE 754 negative infinity value" + return (_sign(value)==1 and _exponent(value)==0x7ff and \ + _mantissa(value)== 0) diff --git a/recipes/python/python-soappy_0.11.6.bb b/recipes/python/python-soappy_0.11.6.bb new file mode 100644 index 0000000000..fc7c49912c --- /dev/null +++ b/recipes/python/python-soappy_0.11.6.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "Python SOAP Bindings" +SECTION = "devel/python" +HOMEPAGE = "http://pywebsvcs.sourceforge.net/" +PRIORITY = "optional" +LICENSE = "BSD" +RDEPENDS = "python-xml python-fpconst" +SRCNAME = "SOAPpy" +PR = "r1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/pywebsvcs/${SRCNAME}-${PV}.tar.gz \ + file://fix-future.patch;patch=1 \ + file://fpconst.py" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +do_compile_prepend() { + install -m 0644 ${WORKDIR}/fpconst.py ${S}/SOAPpy/fpconst.py +} diff --git a/recipes/python/python-sphinx_0.5.1.bb b/recipes/python/python-sphinx_0.5.1.bb new file mode 100644 index 0000000000..a1bc9dd9f7 --- /dev/null +++ b/recipes/python/python-sphinx_0.5.1.bb @@ -0,0 +1,9 @@ +DESCRIPTION = "Python documentation generator" +SECTION = "devel/python" +LICENSE = "BSD" +PR = "ml0" + +SRC_URI = "http://pypi.python.org/packages/source/S/Sphinx/Sphinx-${PV}.tar.gz" +S = "${WORKDIR}/Sphinx-${PV}" + +inherit distutils diff --git a/recipes/python/python-sphinxsearch_0.1.bb b/recipes/python/python-sphinxsearch_0.1.bb new file mode 100644 index 0000000000..dff93bc106 --- /dev/null +++ b/recipes/python/python-sphinxsearch_0.1.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "A module for querying the sphinx search daemon" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +HOMEPAGE = "http://www.sphinxsearch.com/" +SRCNAME = "sphinxsearch" +PR = "ml1" + +SRC_URI = "http://pypi.python.org/packages/source/s/sphinxsearch/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-spydi_0.9.7.bb b/recipes/python/python-spydi_0.9.7.bb new file mode 100644 index 0000000000..434b31d1d1 --- /dev/null +++ b/recipes/python/python-spydi_0.9.7.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Simplified Python Distributed Indexing is a powerful engine \ +to create distributed full text indexing systems and distributed search engines. \ +It supports harvesting, crawling (pull methods), and push methods (via a Web \ +interface or SPyRO Web services)." +HOMEPAGE = "http://www.spyron.org/spydi.html" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "MIT" +PR = "ml1" + +SRC_URI = "http://lsc.fie.umich.mx/%7esadit/spyro/download/SPyDI-${PV}.tar.gz" +S = "${WORKDIR}/SPyDI-${PV}" + +inherit distutils diff --git a/recipes/python/python-sqlalchemy_0.5.0.bb b/recipes/python/python-sqlalchemy_0.5.0.bb new file mode 100644 index 0000000000..5cba5b3a3d --- /dev/null +++ b/recipes/python/python-sqlalchemy_0.5.0.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "Python SQL toolkit and Object Relational Mapper that gives \ +application developers the full power and flexibility of SQL" +HOMEPAGE = "http://www.sqlalchemy.org/" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "MIT" +SRCNAME = "SQLAlchemy" +PR = "ml0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/sqlalchemy/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit setuptools diff --git a/recipes/python/python-sqlobject_0.10.4.bb b/recipes/python/python-sqlobject_0.10.4.bb new file mode 100644 index 0000000000..464cdd2c84 --- /dev/null +++ b/recipes/python/python-sqlobject_0.10.4.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "SQLObject is an object-relational mapper. It allows you to translate RDBMS \ +table rows into Python objects, and manipulate those objects to transparently \ +manipulate the database." +SECTION = "devel/python" +HOMEPAGE = "http://www.sqlobject.org/" +PRIORITY = "optional" +LICENSE = "LGPL" +SRCNAME = "SQLObject" +PR = "ml0" + +SRC_URI = "http://cheeseshop.python.org/packages/source/S/SQLObject/SQLObject-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit setuptools + +RDEPENDS = "python-formencode" diff --git a/recipes/python/python-tlslite_0.3.8.bb b/recipes/python/python-tlslite_0.3.8.bb new file mode 100644 index 0000000000..ae2d73c527 --- /dev/null +++ b/recipes/python/python-tlslite_0.3.8.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "TLS Lite is a free python library that implements SSL 3.0 and TLS 1.0. TLS Lite supports non-traditional \ +authentication methods such as SRP, shared keys, and cryptoIDs, in addition to X.509 certificates. TLS Lite is pure \ +Python, however it can access OpenSSL or cryptlib for faster crypto operations." +SECTION = "devel/python" +HOMEPAGE = "http://trevp.net/tlslite/" +PRIORITY = "optional" +LICENSE = "PD" +SRCNAME = "tlslite" +PR = "ml1" + +SRC_URI = "http://trevp.net/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils diff --git a/recipes/python/python-traits_3.0.3.bb b/recipes/python/python-traits_3.0.3.bb new file mode 100644 index 0000000000..9482a1b242 --- /dev/null +++ b/recipes/python/python-traits_3.0.3.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "Explicitly typed attributes for Python" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "BSD" +PR = "ml0" + +inherit setuptools + +SRC_URI = "\ + http://pypi.python.org/packages/source/T/Traits/Traits-${PV}.tar.gz \ +# file://fix-import-pyface.diff;patch=1 \ +" +S = "${WORKDIR}/Traits-${PV}" + +RDEPENDS = "python-netclient" + +FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/enthought/traits/.debug" +FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/enthought/traits/protocols/.debug" diff --git a/recipes/python/python-twisted-2.5.0/remove-zope-check.patch b/recipes/python/python-twisted-2.5.0/remove-zope-check.patch new file mode 100644 index 0000000000..2bd1b191da --- /dev/null +++ b/recipes/python/python-twisted-2.5.0/remove-zope-check.patch @@ -0,0 +1,18 @@ +Index: Twisted-2.5.0/TwistedCore-2.5.0/twisted/__init__.py +=================================================================== +--- Twisted-2.5.0.orig/TwistedCore-2.5.0/twisted/__init__.py 2007-03-05 16:30:08.117422472 +0100 ++++ Twisted-2.5.0/TwistedCore-2.5.0/twisted/__init__.py 2007-03-05 16:30:13.810553949 +0100 +@@ -14,13 +14,6 @@ + raise RuntimeError("Twisted requires Python 2.3 or later.") + del sys + +-# Ensure zope.interface is installed +-try: +- from zope.interface import Interface +- del Interface +-except ImportError: +- raise ImportError("you need zope.interface installed " +- "(http://zope.org/Products/ZopeInterface/)") + + # Ensure compat gets imported + from twisted.python import compat diff --git a/recipes/python/python-twisted-native_8.2.0.bb b/recipes/python/python-twisted-native_8.2.0.bb new file mode 100644 index 0000000000..d35b9f2482 --- /dev/null +++ b/recipes/python/python-twisted-native_8.2.0.bb @@ -0,0 +1,9 @@ +require python-twisted_${PV}.bb + +RDEPENDS_${PN} = "" + +inherit native + +do_stage() { + distutils_stage_all +} diff --git a/recipes/python/python-twisted_2.5.0.bb b/recipes/python/python-twisted_2.5.0.bb new file mode 100644 index 0000000000..331acf991e --- /dev/null +++ b/recipes/python/python-twisted_2.5.0.bb @@ -0,0 +1,197 @@ +DESCRIPTION = "Twisted is an event-driven networking framework written in Python and licensed under the LGPL. \ +Twisted supports TCP, UDP, SSL/TLS, multicast, Unix sockets, a large number of protocols \ +(including HTTP, NNTP, IMAP, SSH, IRC, FTP, and others), and much more." +HOMEPAGE = "http://www.twistedmatrix.com" +SECTION = "console/network" +PRIORITY = "optional" +LICENSE = "LGPL" +PR = "r9" + +SRC_URI = "http://tmrc.mit.edu/mirror/twisted/Twisted/2.5/Twisted-${PV}.tar.bz2 \ + file://remove-zope-check.patch;patch=1" +S = "${WORKDIR}/Twisted-${PV}" + +inherit distutils + +PACKAGES += "\ + ${PN}-zsh \ + ${PN}-test \ + ${PN}-protocols \ + ${PN}-bin \ + ${PN}-conch \ + ${PN}-lore \ + ${PN}-mail \ + ${PN}-names \ + ${PN}-news \ + ${PN}-runner \ + ${PN}-web \ + ${PN}-words \ + ${PN}-core \ +" + +RDEPENDS = "python-core python-zopeinterface" +RDEPENDS_${PN} += "\ + ${PN}-bin \ + ${PN}-conch \ + ${PN}-lore \ + ${PN}-mail \ + ${PN}-names \ + ${PN}-news \ + ${PN}-runner \ + ${PN}-web \ + ${PN}-words \ +" + +ALLOW_EMPTY = "1" +FILES_${PN} = "" + +FILES_${PN}-test = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/test \ +" + +FILES_${PN}-protocols = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/ \ +" + +FILES_${PN}-zsh = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zsh \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zshcomp.* \ +" + +FILES_${PN}-bin = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/_c_urlarg.so \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/spread/cBanana.so \ +" + +FILES_${PN}-conch = " \ + ${bindir}/ckeygen \ + ${bindir}/tkconch \ + ${bindir}/conch \ + ${bindir}/conchftp \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_conch.py* \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/conch \ +" + +FILES_${PN}-core = " \ +${bindir}/manhole \ +${bindir}/mktap \ +${bindir}/twistd \ +${bindir}/tap2deb \ +${bindir}/tap2rpm \ +${bindir}/tapconvert \ +${bindir}/tkmktap \ +${bindir}/trial \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/*.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__init__.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/notestplugin.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/testplugin.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_ftp.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_inet.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_manhole.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_portforward.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_socks.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_telnet.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_trial.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/dropin.cache \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/application \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/cred \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/enterprise \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/internet \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/manhole \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/manhole \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/persisted \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols\ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python\ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/timeoutqueue.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/filepath.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dxprofile.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/plugin.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/htmlizer.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/__init__.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dispatch.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/hook.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/threadpool.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/otp.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/usage.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/roots.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/versions.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/urlpath.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/util.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/components.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/logfile.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/runtime.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/reflect.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/context.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/threadable.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/rebuild.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/failure.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/lockfile.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/formmethod.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/finalize.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/win32.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dist.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/shortcut.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zipstream.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/release.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/syslog.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/log.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/compat.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zshcomp.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/procutils.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/text.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/_twisted_zsh_stub \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/scripts/ \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/spread/ \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/tap/ \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/trial/ \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/__init__.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/_version.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/copyright.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/im.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugin.py* \ +" + +FILES_${PN}-lore = " \ +${bindir}/bookify \ +${bindir}/lore \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_lore.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/lore \ +" + +FILES_${PN}-mail = " \ +${bindir}/mailmail \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_mail.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/mail \ +" + +FILES_${PN}-names = " \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_names.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/names \ +" + +FILES_${PN}-news = " \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_news.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/news \ +" + +FILES_${PN}-runner = " \ +${libdir}/site-packages/twisted/runner/portmap.so \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/runner\ +" + +FILES_${PN}-web = " \ +${bindir}/websetroot \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_web.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/web\ +" + +FILES_${PN}-words = " \ +${bindir}/im \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_words.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/words\ +" + +FILES_${PN}-dbg += " \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/*/.debug \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/*/*/.debug \ +" diff --git a/recipes/python/python-twisted_8.2.0.bb b/recipes/python/python-twisted_8.2.0.bb new file mode 100644 index 0000000000..78234187fb --- /dev/null +++ b/recipes/python/python-twisted_8.2.0.bb @@ -0,0 +1,212 @@ +DESCRIPTION = "Twisted is an event-driven networking framework written in Python and licensed under the LGPL. \ +Twisted supports TCP, UDP, SSL/TLS, multicast, Unix sockets, a large number of protocols \ +(including HTTP, NNTP, IMAP, SSH, IRC, FTP, and others), and much more." +HOMEPAGE = "http://www.twistedmatrix.com" +SECTION = "console/network" +PRIORITY = "optional" +LICENSE = "LGPL" +PR = "r1" + +SRC_URI = "http://tmrc.mit.edu/mirror/twisted/Twisted/8.2/Twisted-${PV}.tar.bz2 " +S = "${WORKDIR}/Twisted-${PV}" + +inherit setuptools + +PACKAGES += "\ + ${PN}-zsh \ + ${PN}-test \ + ${PN}-protocols \ + ${PN}-bin \ + ${PN}-conch \ + ${PN}-lore \ + ${PN}-mail \ + ${PN}-names \ + ${PN}-news \ + ${PN}-runner \ + ${PN}-web \ + ${PN}-words \ + ${PN}-flow \ + ${PN}-pair \ + ${PN}-core \ +" + +RDEPENDS = "python-core python-zopeinterface" +RDEPENDS_${PN} += "\ + ${PN}-bin \ + ${PN}-conch \ + ${PN}-lore \ + ${PN}-mail \ + ${PN}-names \ + ${PN}-news \ + ${PN}-runner \ + ${PN}-web \ + ${PN}-words \ +" + +ALLOW_EMPTY = "1" +FILES_${PN} = "" + +FILES_${PN}-test = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/test \ +" + +FILES_${PN}-protocols = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/ \ +" + +FILES_${PN}-zsh = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zsh \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zshcomp.* \ +" + +FILES_${PN}-bin = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/_c_urlarg.so \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/spread/cBanana.so \ +" + +FILES_${PN}-conch = " \ + ${bindir}/ckeygen \ + ${bindir}/tkconch \ + ${bindir}/conch \ + ${bindir}/conchftp \ + ${bindir}/cftp \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_conch.py* \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/conch \ +" + +FILES_${PN}-core = " \ +${bindir}/manhole \ +${bindir}/mktap \ +${bindir}/twistd \ +${bindir}/tap2deb \ +${bindir}/tap2rpm \ +${bindir}/tapconvert \ +${bindir}/tkmktap \ +${bindir}/trial \ +${bindir}/easy_install* \ +${bindir}/pyhtmlizer \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/*.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__init__.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/notestplugin.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/testplugin.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_ftp.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_inet.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_manhole.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_portforward.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_socks.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_telnet.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_trial.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/dropin.cache \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/application \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/cred \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/enterprise \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/internet \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/manhole \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/manhole \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/persisted \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols\ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python\ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/timeoutqueue.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/filepath.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dxprofile.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/plugin.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/htmlizer.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/__init__.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dispatch.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/hook.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/threadpool.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/otp.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/usage.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/roots.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/versions.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/urlpath.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/util.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/components.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/logfile.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/runtime.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/reflect.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/context.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/threadable.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/rebuild.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/failure.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/lockfile.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/formmethod.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/finalize.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/win32.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dist.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/shortcut.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zipstream.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/release.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/syslog.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/log.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/compat.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zshcomp.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/procutils.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/text.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/_twisted_zsh_stub \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/scripts/ \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/spread/ \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/tap/ \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/trial/ \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/__init__.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/_version.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/copyright.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/im.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/*.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/*.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/*.py* \ +" + +FILES_${PN}-lore = " \ +${bindir}/bookify \ +${bindir}/lore \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_lore.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/lore \ +" + +FILES_${PN}-mail = " \ +${bindir}/mailmail \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_mail.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/mail \ +" + +FILES_${PN}-names = " \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_names.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/names \ +" + +FILES_${PN}-news = " \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_news.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/news \ +" + +FILES_${PN}-runner = " \ +${libdir}/site-packages/twisted/runner/portmap.so \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/runner\ +" + +FILES_${PN}-web = " \ +${bindir}/websetroot \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_web.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/web\ +" + +FILES_${PN}-words = " \ +${bindir}/im \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_words.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/words\ +" + +FILES_${PN}-flow = " \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_flow.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/flow \" + +FILES_${PN}-pair = " \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_pair.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/pair \ +" + +FILES_${PN}-dbg += " \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/*/.debug \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/*/*/.debug \ +" diff --git a/recipes/python/python-vorbis/disable-oggcheck.patch b/recipes/python/python-vorbis/disable-oggcheck.patch new file mode 100644 index 0000000000..2555169759 --- /dev/null +++ b/recipes/python/python-vorbis/disable-oggcheck.patch @@ -0,0 +1,16 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- pyvorbis-1.3/setup.py~disable-oggcheck 2003-08-15 10:42:02.000000000 +0200 ++++ pyvorbis-1.3/setup.py 2004-01-21 16:32:56.000000000 +0100 +@@ -16,7 +16,7 @@ + print '''You must have the Ogg Python bindings + installed in order to build and install + these bindings. Import of ogg._ogg failed.''' +- sys.exit(1) ++ #sys.exit(1) + + def get_setup(): + data = {} diff --git a/recipes/python/python-vorbis_1.4.bb b/recipes/python/python-vorbis_1.4.bb new file mode 100644 index 0000000000..69a341f4f8 --- /dev/null +++ b/recipes/python/python-vorbis_1.4.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "Python Vorbis Bindings" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "LGPL" +DEPENDS = "libvorbis python-ogg" +SRCNAME = "pyvorbis" +PR = "ml0" + +SRC_URI = "http://www.andrewchatham.com/pyogg/download/${SRCNAME}-${PV}.tar.gz \ + file://disable-oggcheck.patch;patch=1" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +do_configure_prepend() { + touch Setup + echo "ogg_libs = ogg" >>Setup + echo "ogg_lib_dir = ${STAGING_LIBDIR}" >>Setup + echo "ogg_include_dir = ${STAGING_INCDIR}" >>Setup + echo "vorbis_libs = vorbis vorbisfile vorbisenc" >>Setup + echo "vorbis_lib_dir = ${STAGING_LIBDIR}" >>Setup + echo "vorbis_include_dir = ${STAGING_INCDIR}" >>Setup +} diff --git a/recipes/python/python-webpy_0.31.bb b/recipes/python/python-webpy_0.31.bb new file mode 100644 index 0000000000..616e8b4c9b --- /dev/null +++ b/recipes/python/python-webpy_0.31.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "A Lightweight Web Application Framework" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "PSF" +PR = "ml0" + +SRC_URI = "http://webpy.org/static/web.py-${PV}.tar.gz" +S = "${WORKDIR}/webpy" + +inherit distutils + +RDEPENDS = "\ + python-netserver \ + python-netclient \ + python-pprint \ +" + diff --git a/recipes/python/python-xappy_0.5.bb b/recipes/python/python-xappy_0.5.bb new file mode 100644 index 0000000000..5c5f1ae6d1 --- /dev/null +++ b/recipes/python/python-xappy_0.5.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "The xappy python module is an easy-to-use interface to the Xapian search engine" +SECTION = "devel/python" +LICENSE = "GPLv2" +DEPENDS = "xapian-core" +PR = "ml0" + +SRC_URI = "http://xappy.googlecode.com/files/xappy-${PV}.tar.gz" +S = "${WORKDIR}/xappy-${PV}" + +inherit distutils + +do_stage() { + distutils_stage_all +} + diff --git a/recipes/python/python-xlib_0.14.bb b/recipes/python/python-xlib_0.14.bb new file mode 100644 index 0000000000..eb29004223 --- /dev/null +++ b/recipes/python/python-xlib_0.14.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "Python Bindings for X Library" +HOMEPAGE = "http://sourceforge.net/projects/python-xlib/" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +PR = "r1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${PN}-${PV}.tar.gz" + +inherit distutils diff --git a/recipes/python/python.inc b/recipes/python/python.inc new file mode 100644 index 0000000000..1e53e6964e --- /dev/null +++ b/recipes/python/python.inc @@ -0,0 +1,23 @@ +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 +PR = "ml2" + +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 \ +" diff --git a/recipes/python/python_2.6.1.bb b/recipes/python/python_2.6.1.bb new file mode 100644 index 0000000000..57c64dfa55 --- /dev/null +++ b/recipes/python/python_2.6.1.bb @@ -0,0 +1,117 @@ +require python.inc +DEPENDS = "python-native db gdbm openssl readline sqlite3 tcl tk zlib" +DEPENDS_sharprom = "python-native db readline zlib gdbm openssl" +PR = "ml4" + +SRC_URI = "\ + http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2 \ + file://00-fix-bindir-libdir-for-cross.patch;patch=1 \ + file://01-use-proper-tools-for-cross-build.patch;patch=1 \ + file://02-remove-test-for-cross.patch;patch=1 \ + file://03-fix-tkinter-detection.patch;patch=1 \ + file://04-default-is-optimized.patch;patch=1 \ + file://05-enable-ctypes-cross-build.patch;patch=1 \ + file://06-libffi-enable-default-mips.patch;patch=1 \ + file://99-ignore-optimization-flag.patch;patch=1 \ + \ +# not yet pushed forward +# sitecustomize, sitebranding + \ +# file://05-install.patch;patch=1 \ +# file://06-fix-urllib-exception.patch;patch=1 \ +# file://16-bug1179-imageop.patch;patch=1 \ +# file://13-set-wakeup-fix.patch;patch=1 \ + \ + file://sitecustomize.py \ +" +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__" + +# +# 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_stage() { + install -m 0644 Include/*.h ${STAGING_INCDIR}/python${PYTHON_MAJMIN}/ + oe_libinstall -a -so libpython${PYTHON_MAJMIN} ${STAGING_LIBDIR} +} + +do_install() { + install -m 0644 Makefile.orig Makefile + + oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/pgen \ + HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python \ + STAGING_LIBDIR=${STAGING_LIBDIR} \ + STAGING_INCDIR=${STAGING_INCDIR} \ + BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ + DESTDIR=${D} LIBDIR=${libdir} 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" + +# 2to3 +FILES_python-core += "${bindir}/2to3" + +# package libpython +PACKAGES =+ "libpython2" +FILES_libpython2 = "${libdir}/libpython*.so.*" + +# 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" |