diff --git a/dev-lang/python/patches/python-3.2a4.patch b/dev-lang/python/patches/python-3.2a4.patch new file mode 100644 index 000000000..086526d4f --- /dev/null +++ b/dev-lang/python/patches/python-3.2a4.patch @@ -0,0 +1,187 @@ +diff -urN Python-3.2a4/Lib/plat-haiku/regen Python-3.2a4-haiku/Lib/plat-haiku/regen +--- Python-3.2a4/Lib/plat-haiku/regen 1970-01-01 00:00:00.000000000 +0000 ++++ Python-3.2a4-haiku/Lib/plat-haiku/regen 2010-11-22 11:11:57.509870080 +0000 +@@ -0,0 +1,3 @@ ++#! /bin/sh ++set -v ++python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /boot/develop/headers/posix/netinet/in.h +diff -urN Python-3.2a4/Modules/resource.c Python-3.2a4-haiku/Modules/resource.c +--- Python-3.2a4/Modules/resource.c 2010-05-09 15:52:27.011796480 +0000 ++++ Python-3.2a4-haiku/Modules/resource.c 2010-11-22 11:11:57.581173248 +0000 +@@ -86,6 +86,7 @@ + PyFloat_FromDouble(doubletime(ru.ru_utime))); + PyStructSequence_SET_ITEM(result, 1, + PyFloat_FromDouble(doubletime(ru.ru_stime))); ++#ifndef __HAIKU__ + PyStructSequence_SET_ITEM(result, 2, PyLong_FromLong(ru.ru_maxrss)); + PyStructSequence_SET_ITEM(result, 3, PyLong_FromLong(ru.ru_ixrss)); + PyStructSequence_SET_ITEM(result, 4, PyLong_FromLong(ru.ru_idrss)); +@@ -100,7 +101,7 @@ + PyStructSequence_SET_ITEM(result, 13, PyLong_FromLong(ru.ru_nsignals)); + PyStructSequence_SET_ITEM(result, 14, PyLong_FromLong(ru.ru_nvcsw)); + PyStructSequence_SET_ITEM(result, 15, PyLong_FromLong(ru.ru_nivcsw)); +- ++#endif + if (PyErr_Occurred()) { + Py_DECREF(result); + return NULL; +diff -urN Python-3.2a4/Modules/socketmodule.c Python-3.2a4-haiku/Modules/socketmodule.c +--- Python-3.2a4/Modules/socketmodule.c 2010-11-05 17:24:13.021233664 +0000 ++++ Python-3.2a4-haiku/Modules/socketmodule.c 2010-11-22 11:11:57.722468864 +0000 +@@ -4684,7 +4684,9 @@ + PyModule_AddIntConstant(m, "SOCK_DGRAM", SOCK_DGRAM); + /* We have incomplete socket support. */ + PyModule_AddIntConstant(m, "SOCK_RAW", SOCK_RAW); ++#ifndef __HAIKU__ + PyModule_AddIntConstant(m, "SOCK_SEQPACKET", SOCK_SEQPACKET); ++#endif + #if defined(SOCK_RDM) + PyModule_AddIntConstant(m, "SOCK_RDM", SOCK_RDM); + #endif +diff -urN Python-3.2a4/Modules/socketmodule.h Python-3.2a4-haiku/Modules/socketmodule.h +--- Python-3.2a4/Modules/socketmodule.h 2010-08-28 20:42:55.019398656 +0000 ++++ Python-3.2a4-haiku/Modules/socketmodule.h 2010-11-22 11:11:57.790626304 +0000 +@@ -47,6 +47,10 @@ + # undef AF_NETLINK + #endif + ++#if defined (__HAIKU__) ++# undef HAVE_BLUETOOTH_BLUETOOTH_H ++#endif ++ + #ifdef HAVE_BLUETOOTH_BLUETOOTH_H + #include + #include +diff -urN Python-3.2a4/Modules/spwdmodule.c Python-3.2a4-haiku/Modules/spwdmodule.c +--- Python-3.2a4/Modules/spwdmodule.c 2010-05-15 16:27:27.011534336 +0000 ++++ Python-3.2a4-haiku/Modules/spwdmodule.c 2010-11-22 11:11:57.802422784 +0000 +@@ -80,7 +80,9 @@ + + SETS(setIndex++, p->sp_namp); + SETS(setIndex++, p->sp_pwdp); ++#ifndef __HAIKU__ + SETI(setIndex++, p->sp_lstchg); ++#endif + SETI(setIndex++, p->sp_min); + SETI(setIndex++, p->sp_max); + SETI(setIndex++, p->sp_warn); +diff -urN Python-3.2a4/Python/bltinmodule.c Python-3.2a4-haiku/Python/bltinmodule.c +--- Python-3.2a4/Python/bltinmodule.c 2010-10-17 20:54:53.028049408 +0000 ++++ Python-3.2a4-haiku/Python/bltinmodule.c 2010-11-22 11:11:57.832831488 +0000 +@@ -22,7 +22,7 @@ + #if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) + const char *Py_FileSystemDefaultEncoding = "mbcs"; + int Py_HasFileSystemDefaultEncoding = 1; +-#elif defined(__APPLE__) ++#elif defined(__APPLE__) || defined(__HAIKU__) + const char *Py_FileSystemDefaultEncoding = "utf-8"; + int Py_HasFileSystemDefaultEncoding = 1; + #elif defined(HAVE_LANGINFO_H) && defined(CODESET) +diff -urN Python-3.2a4/configure.in Python-3.2a4-haiku/configure.in +--- Python-3.2a4/configure.in 2010-11-01 01:44:30.004980736 +0000 ++++ Python-3.2a4-haiku/configure.in 2010-11-22 11:14:04.316407808 +0000 +@@ -292,6 +292,7 @@ + case $MACHDEP in + cygwin*) MACHDEP="cygwin";; + darwin*) MACHDEP="darwin";; ++ haiku*) MACHDEP="haiku";; + irix646) MACHDEP="irix6";; + '') MACHDEP="unknown";; + esac +@@ -738,7 +739,7 @@ + RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} + INSTSONAME="$LDLIBRARY".$SOVERSION + ;; +- Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*) ++ Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|Haiku*) + LDLIBRARY='libpython$(LDVERSION).so' + BLDLIBRARY='-L. -lpython$(LDVERSION)' + RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} +@@ -823,6 +824,7 @@ + if test -z "$LN" ; then + case $ac_sys_system in + CYGWIN*) LN="ln -s";; ++ Haiku*) LN="ln -s";; + *) LN=ln;; + esac + fi +@@ -1709,7 +1711,7 @@ + fi + fi + ;; +- Linux*|GNU*|QNX*) ++ Linux*|GNU*|QNX*|Haiku*) + LDSHARED='$(CC) -shared' + LDCXXSHARED='$(CXX) -shared';; + BSD/OS*/4*) +@@ -1778,7 +1780,7 @@ + then CCSHARED="-fPIC"; + else CCSHARED="+z"; + fi;; +- Linux*|GNU*) CCSHARED="-fPIC";; ++ Linux*|GNU*|Haiku*) CCSHARED="-fPIC";; + BSD/OS*/4*) CCSHARED="-fpic";; + FreeBSD*|NetBSD*|OpenBSD*|DragonFly*) CCSHARED="-fPIC";; + OpenUNIX*|UnixWare*) +@@ -1809,7 +1811,7 @@ + LINKFORSHARED="-Wl,-E -Wl,+s";; + # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";; + BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";; +- Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";; ++ Linux*|GNU*|Haiku*) LINKFORSHARED="-Xlinker -export-dynamic";; + # -u libsys_s pulls in all symbols in libsys + Darwin/*) + LINKFORSHARED="$extra_undefs -framework CoreFoundation" +@@ -1920,6 +1922,8 @@ + AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4 + AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets + ++AC_CHECK_LIB(network, socket, [LIBS="-lnetwork $LIBS"], [], $LIBS) # For Haiku ++ + AC_MSG_CHECKING(for --with-libs) + AC_ARG_WITH(libs, + AS_HELP_STRING([--with-libs='lib1 ...'], [link against additional libs]), +@@ -3192,7 +3196,7 @@ + # check for --with-libm=... + AC_SUBST(LIBM) + case $ac_sys_system in +-Darwin) ;; ++Darwin|Haiku*) ;; + *) LIBM=-lm + esac + AC_MSG_CHECKING(for --with-libm=STRING) +diff -urN Python-3.2a4/setup.py Python-3.2a4-haiku/setup.py +--- Python-3.2a4/setup.py 2010-10-31 17:11:02.000000000 +0000 ++++ Python-3.2a4-haiku/setup.py 2010-11-22 11:11:58.034603008 +0000 +@@ -429,6 +429,10 @@ + platform = self.get_platform() + srcdir = sysconfig.get_config_var('srcdir') + ++ if platform == 'haiku1': ++ inc_dirs += ['/boot/develop/headers/posix', '/boot/develop/headers/3rdparty', '/boot/common/include'] ++ lib_dirs += ['/boot/system/lib', '/boot/develop/lib/x86', '/boot/common/lib'] ++ + # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb) + if platform in ['osf1', 'unixware7', 'openunix8']: + lib_dirs += ['/usr/ccs/lib'] +@@ -450,9 +454,9 @@ + if item.startswith('-L'): + lib_dirs.append(item[2:]) + +- # Check for MacOS X, which doesn't need libm.a at all ++ # Check for MacOS X or Haiku, which don't need libm.a at all + math_libs = ['m'] +- if platform == 'darwin': ++ if platform == 'darwin' or platform == 'haiku': + math_libs = [] + + # XXX Omitted modules: gl, pure, dl, SGI-specific modules +@@ -1110,7 +1114,7 @@ + exts.append( Extension('resource', ['resource.c']) ) + + # Sun yellow pages. Some systems have the functions in libc. +- if (platform not in ['cygwin', 'qnx6'] and ++ if (platform not in ['cygwin', 'qnx6', 'haiku'] and + find_file('rpcsvc/yp_prot.h', inc_dirs, []) is not None): + if (self.compiler.find_library_file(lib_dirs, 'nsl')): + libs = ['nsl'] diff --git a/dev-lang/python/python-3.2a4.bep b/dev-lang/python/python-3.2a4.bep new file mode 100644 index 000000000..267a9227b --- /dev/null +++ b/dev-lang/python/python-3.2a4.bep @@ -0,0 +1,38 @@ +DESCRIPTION="python - An interpreted, interactive, object-oriented programming language" +HOMEPAGE="http://www.python.org" +SRC_URI="http://www.python.org/ftp/python/3.2/Python-3.2a4.tar.bz2" +CHECKSUM_MD5="2c7f690e6de62691a0427328a9654290" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="sys-libs/readline >= 6.0" +BUILD { + cd Python-3.2a4/Modules/_ctypes/libffi + libtoolize --force --copy --install + cd ../../.. + echo "AC_CONFIG_MACRO_DIR([m4])" >> configure.in + libtoolize --force --copy --install + aclocal + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --enable-shared \ + LDFLAGS=-L/boot/common/lib \ + CFLAGS=-I/boot/develop/headers/3rdparty + make +} + +INSTALL { + cd Python-3.2a4 + make install +} + +TEST { + cd Python-3.2a4 + cd Lib/test + rm test_asynchat.py # this one stalls, so skip it for now + rm test_multiprocessing.py # this one stalls, so skip it for now + + python regrtest.py +} + +LICENSE="Python" +COPYRIGHT="1990-2010, Python Software Foundation"