diff -ruN Python-2.7.1-orig/Lib/plat-haiku1/IN.py Python-2.7.1/Lib/plat-haiku1/IN.py --- Python-2.7.1-orig/Lib/plat-haiku1/IN.py 1969-12-31 19:00:00.000000000 -0500 +++ Python-2.7.1/Lib/plat-haiku1/IN.py 2010-11-28 06:45:27.716701696 -0500 @@ -0,0 +1,327 @@ +# Generated by h2py from /boot/develop/headers/be/net/netinet/in.h + +# Included from socket.h + +# Included from BeBuild.h +B_BEOS_VERSION_4 = 0x0400 +B_BEOS_VERSION_4_5 = 0x0450 +B_BEOS_VERSION_5 = 0x0500 +B_BEOS_VERSION = B_BEOS_VERSION_5 +B_BEOS_VERSION_MAUI = B_BEOS_VERSION_5 +_PR2_COMPATIBLE_ = 1 +_PR3_COMPATIBLE_ = 1 +_R4_COMPATIBLE_ = 1 +_R4_5_COMPATIBLE_ = 1 +_PR2_COMPATIBLE_ = 0 +_PR3_COMPATIBLE_ = 0 +_R4_COMPATIBLE_ = 1 +_R4_5_COMPATIBLE_ = 1 +def _UNUSED(x): return x + + +# Included from sys/types.h + +# Included from time.h + +# Included from be_setup.h +def __std(ref): return ref + +__be_os = 2 +__dest_os = __be_os +__MSL__ = 0x4011 +__GLIBC__ = -2 +__GLIBC_MINOR__ = 1 + +# Included from null.h +NULL = (0) +NULL = 0L + +# Included from size_t.h + +# Included from stddef.h + +# Included from wchar_t.h +CLOCKS_PER_SEC = 1000 +CLK_TCK = CLOCKS_PER_SEC +MAX_TIMESTR = 70 + +# Included from sys/time.h + +# Included from ByteOrder.h + +# Included from endian.h +__LITTLE_ENDIAN = 1234 +LITTLE_ENDIAN = __LITTLE_ENDIAN +__BYTE_ORDER = __LITTLE_ENDIAN +BYTE_ORDER = __BYTE_ORDER +__BIG_ENDIAN = 0 +BIG_ENDIAN = 0 +__BIG_ENDIAN = 4321 +BIG_ENDIAN = __BIG_ENDIAN +__BYTE_ORDER = __BIG_ENDIAN +BYTE_ORDER = __BYTE_ORDER +__LITTLE_ENDIAN = 0 +LITTLE_ENDIAN = 0 +__PDP_ENDIAN = 3412 +PDP_ENDIAN = __PDP_ENDIAN + +# Included from SupportDefs.h + +# Included from Errors.h + +# Included from limits.h + +# Included from float.h +FLT_ROUNDS = 1 +FLT_RADIX = 2 +FLT_MANT_DIG = 24 +FLT_DIG = 6 +FLT_MIN_EXP = (-125) +FLT_MIN_10_EXP = (-37) +FLT_MAX_EXP = 128 +FLT_MAX_10_EXP = 38 +DBL_MANT_DIG = 53 +DBL_DIG = 15 +DBL_MIN_EXP = (-1021) +DBL_MIN_10_EXP = (-308) +DBL_MAX_EXP = 1024 +DBL_MAX_10_EXP = 308 +LDBL_MANT_DIG = DBL_MANT_DIG +LDBL_DIG = DBL_DIG +LDBL_MIN_EXP = DBL_MIN_EXP +LDBL_MIN_10_EXP = DBL_MIN_10_EXP +LDBL_MAX_EXP = DBL_MAX_EXP +LDBL_MAX_10_EXP = DBL_MAX_10_EXP +CHAR_BIT = (8) +SCHAR_MIN = (-127-1) +SCHAR_MAX = (127) +CHAR_MIN = SCHAR_MIN +CHAR_MAX = SCHAR_MAX +MB_LEN_MAX = (1) +SHRT_MIN = (-32767-1) +SHRT_MAX = (32767) +LONG_MIN = (-2147483647L-1) +LONG_MAX = (2147483647L) +INT_MIN = LONG_MIN +INT_MAX = LONG_MAX +ARG_MAX = (32768) +ATEXIT_MAX = (32) +CHILD_MAX = (1024) +IOV_MAX = (256) +FILESIZEBITS = (64) +LINK_MAX = (1) +LOGIN_NAME_MAX = (32) +MAX_CANON = (255) +MAX_INPUT = (255) +NAME_MAX = (256) +NGROUPS_MAX = (32) +OPEN_MAX = (128) +PATH_MAX = (1024) +PIPE_MAX = (512) +SSIZE_MAX = (2147483647L) +TTY_NAME_MAX = (256) +TZNAME_MAX = (32) +SYMLINKS_MAX = (16) +_POSIX_ARG_MAX = (32768) +_POSIX_CHILD_MAX = (1024) +_POSIX_LINK_MAX = (1) +_POSIX_LOGIN_NAME_MAX = (9) +_POSIX_MAX_CANON = (255) +_POSIX_MAX_INPUT = (255) +_POSIX_NAME_MAX = (255) +_POSIX_NGROUPS_MAX = (0) +_POSIX_OPEN_MAX = (128) +_POSIX_PATH_MAX = (1024) +_POSIX_PIPE_BUF = (512) +_POSIX_SSIZE_MAX = (2147483647L) +_POSIX_STREAM_MAX = (8) +_POSIX_TTY_NAME_MAX = (256) +_POSIX_TZNAME_MAX = (3) +B_GENERAL_ERROR_BASE = LONG_MIN +B_OS_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x1000 +B_APP_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x2000 +B_INTERFACE_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x3000 +B_MEDIA_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x4000 +B_TRANSLATION_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x4800 +B_MIDI_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x5000 +B_STORAGE_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x6000 +B_POSIX_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x7000 +B_MAIL_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x8000 +B_PRINT_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x9000 +B_DEVICE_ERROR_BASE = B_GENERAL_ERROR_BASE + 0xa000 +B_ERRORS_END = (B_GENERAL_ERROR_BASE + 0xffff) +E2BIG = (B_POSIX_ERROR_BASE + 1) +ECHILD = (B_POSIX_ERROR_BASE + 2) +EDEADLK = (B_POSIX_ERROR_BASE + 3) +EFBIG = (B_POSIX_ERROR_BASE + 4) +EMLINK = (B_POSIX_ERROR_BASE + 5) +ENFILE = (B_POSIX_ERROR_BASE + 6) +ENODEV = (B_POSIX_ERROR_BASE + 7) +ENOLCK = (B_POSIX_ERROR_BASE + 8) +ENOSYS = (B_POSIX_ERROR_BASE + 9) +ENOTTY = (B_POSIX_ERROR_BASE + 10) +ENXIO = (B_POSIX_ERROR_BASE + 11) +ESPIPE = (B_POSIX_ERROR_BASE + 12) +ESRCH = (B_POSIX_ERROR_BASE + 13) +EFPOS = (B_POSIX_ERROR_BASE + 14) +ESIGPARM = (B_POSIX_ERROR_BASE + 15) +EDOM = (B_POSIX_ERROR_BASE + 16) +ERANGE = (B_POSIX_ERROR_BASE + 17) +EPROTOTYPE = (B_POSIX_ERROR_BASE + 18) +EPROTONOSUPPORT = (B_POSIX_ERROR_BASE + 19) +EPFNOSUPPORT = (B_POSIX_ERROR_BASE + 20) +EAFNOSUPPORT = (B_POSIX_ERROR_BASE + 21) +EADDRINUSE = (B_POSIX_ERROR_BASE + 22) +EADDRNOTAVAIL = (B_POSIX_ERROR_BASE + 23) +ENETDOWN = (B_POSIX_ERROR_BASE + 24) +ENETUNREACH = (B_POSIX_ERROR_BASE + 25) +ENETRESET = (B_POSIX_ERROR_BASE + 26) +ECONNABORTED = (B_POSIX_ERROR_BASE + 27) +ECONNRESET = (B_POSIX_ERROR_BASE + 28) +EISCONN = (B_POSIX_ERROR_BASE + 29) +ENOTCONN = (B_POSIX_ERROR_BASE + 30) +ESHUTDOWN = (B_POSIX_ERROR_BASE + 31) +ECONNREFUSED = (B_POSIX_ERROR_BASE + 32) +EHOSTUNREACH = (B_POSIX_ERROR_BASE + 33) +ENOPROTOOPT = (B_POSIX_ERROR_BASE + 34) +ENOBUFS = (B_POSIX_ERROR_BASE + 35) +EINPROGRESS = (B_POSIX_ERROR_BASE + 36) +EALREADY = (B_POSIX_ERROR_BASE + 37) +EILSEQ = (B_POSIX_ERROR_BASE + 38) +ENOMSG = (B_POSIX_ERROR_BASE + 39) +ESTALE = (B_POSIX_ERROR_BASE + 40) +EOVERFLOW = (B_POSIX_ERROR_BASE + 41) +EMSGSIZE = (B_POSIX_ERROR_BASE + 42) +EOPNOTSUPP = (B_POSIX_ERROR_BASE + 43) +ENOTSOCK = (B_POSIX_ERROR_BASE + 44) +false = 0 +true = 1 +NULL = (0) +FALSE = 0 +TRUE = 1 + +# Included from TypeConstants.h +B_HOST_IS_LENDIAN = 1 +B_HOST_IS_BENDIAN = 0 +def B_HOST_TO_LENDIAN_DOUBLE(arg): return (double)(arg) + +def B_HOST_TO_LENDIAN_FLOAT(arg): return (float)(arg) + +def B_HOST_TO_LENDIAN_INT64(arg): return (uint64)(arg) + +def B_HOST_TO_LENDIAN_INT32(arg): return (uint32)(arg) + +def B_HOST_TO_LENDIAN_INT16(arg): return (uint16)(arg) + +def B_HOST_TO_BENDIAN_DOUBLE(arg): return __swap_double(arg) + +def B_HOST_TO_BENDIAN_FLOAT(arg): return __swap_float(arg) + +def B_HOST_TO_BENDIAN_INT64(arg): return __swap_int64(arg) + +def B_HOST_TO_BENDIAN_INT32(arg): return __swap_int32(arg) + +def B_HOST_TO_BENDIAN_INT16(arg): return __swap_int16(arg) + +def B_LENDIAN_TO_HOST_DOUBLE(arg): return (double)(arg) + +def B_LENDIAN_TO_HOST_FLOAT(arg): return (float)(arg) + +def B_LENDIAN_TO_HOST_INT64(arg): return (uint64)(arg) + +def B_LENDIAN_TO_HOST_INT32(arg): return (uint32)(arg) + +def B_LENDIAN_TO_HOST_INT16(arg): return (uint16)(arg) + +def B_BENDIAN_TO_HOST_DOUBLE(arg): return __swap_double(arg) + +def B_BENDIAN_TO_HOST_FLOAT(arg): return __swap_float(arg) + +def B_BENDIAN_TO_HOST_INT64(arg): return __swap_int64(arg) + +def B_BENDIAN_TO_HOST_INT32(arg): return __swap_int32(arg) + +def B_BENDIAN_TO_HOST_INT16(arg): return __swap_int16(arg) + +B_HOST_IS_LENDIAN = 0 +B_HOST_IS_BENDIAN = 1 +def B_HOST_TO_LENDIAN_DOUBLE(arg): return __swap_double(arg) + +def B_HOST_TO_LENDIAN_FLOAT(arg): return __swap_float(arg) + +def B_HOST_TO_LENDIAN_INT64(arg): return __swap_int64(arg) + +def B_HOST_TO_LENDIAN_INT32(arg): return __swap_int32(arg) + +def B_HOST_TO_LENDIAN_INT16(arg): return __swap_int16(arg) + +def B_HOST_TO_BENDIAN_DOUBLE(arg): return (double)(arg) + +def B_HOST_TO_BENDIAN_FLOAT(arg): return (float)(arg) + +def B_HOST_TO_BENDIAN_INT64(arg): return (uint64)(arg) + +def B_HOST_TO_BENDIAN_INT32(arg): return (uint32)(arg) + +def B_HOST_TO_BENDIAN_INT16(arg): return (uint16)(arg) + +def B_LENDIAN_TO_HOST_DOUBLE(arg): return __swap_double(arg) + +def B_LENDIAN_TO_HOST_FLOAT(arg): return __swap_float(arg) + +def B_LENDIAN_TO_HOST_INT64(arg): return __swap_int64(arg) + +def B_LENDIAN_TO_HOST_INT32(arg): return __swap_int32(arg) + +def B_LENDIAN_TO_HOST_INT16(arg): return __swap_int16(arg) + +def B_BENDIAN_TO_HOST_DOUBLE(arg): return (double)(arg) + +def B_BENDIAN_TO_HOST_FLOAT(arg): return (float)(arg) + +def B_BENDIAN_TO_HOST_INT64(arg): return (uint64)(arg) + +def B_BENDIAN_TO_HOST_INT32(arg): return (uint32)(arg) + +def B_BENDIAN_TO_HOST_INT16(arg): return (uint16)(arg) + +def B_SWAP_DOUBLE(arg): return __swap_double(arg) + +def B_SWAP_FLOAT(arg): return __swap_float(arg) + +def B_SWAP_INT64(arg): return __swap_int64(arg) + +def B_SWAP_INT32(arg): return __swap_int32(arg) + +def B_SWAP_INT16(arg): return __swap_int16(arg) + +def htonl(x): return B_HOST_TO_BENDIAN_INT32(x) + +def ntohl(x): return B_BENDIAN_TO_HOST_INT32(x) + +def htons(x): return B_HOST_TO_BENDIAN_INT16(x) + +def ntohs(x): return B_BENDIAN_TO_HOST_INT16(x) + +AF_INET = 1 +INADDR_ANY = 0x00000000 +INADDR_BROADCAST = 0xffffffff +INADDR_LOOPBACK = 0x7f000001 +SOL_SOCKET = 1 +SO_DEBUG = 1 +SO_REUSEADDR = 2 +SO_NONBLOCK = 3 +SO_REUSEPORT = 4 +MSG_OOB = 0x1 +SOCK_DGRAM = 1 +SOCK_STREAM = 2 +IPPROTO_UDP = 1 +IPPROTO_TCP = 2 +IPPROTO_ICMP = 3 +B_UDP_MAX_SIZE = (65536 - 1024) +FD_SETSIZE = 256 +FDSETSIZE = FD_SETSIZE +NFDBITS = 32 +def _FDMSKNO(fd): return ((fd) / NFDBITS) + +def _FDBITNO(fd): return ((fd) % NFDBITS) diff -ruN Python-2.7.1-orig/Lib/plat-haiku1/regen Python-2.7.1/Lib/plat-haiku1/regen --- Python-2.7.1-orig/Lib/plat-haiku1/regen 1969-12-31 19:00:00.000000000 -0500 +++ Python-2.7.1/Lib/plat-haiku1/regen 2010-11-28 06:45:28.041418752 -0500 @@ -0,0 +1,7 @@ +#! /bin/sh + +H2PY=../../Tools/scripts/h2py.py +HEADERS=/boot/develop/headers + +set -v +python $H2PY -i '(u_long)' $HEADERS/posix/netinet/in.h diff -ruN Python-2.7.1-orig/Modules/resource.c Python-2.7.1/Modules/resource.c --- Python-2.7.1-orig/Modules/resource.c 2010-05-09 10:46:46.053739520 -0400 +++ Python-2.7.1/Modules/resource.c 2010-11-28 06:45:28.044564480 -0500 @@ -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, PyInt_FromLong(ru.ru_maxrss)); PyStructSequence_SET_ITEM(result, 3, PyInt_FromLong(ru.ru_ixrss)); PyStructSequence_SET_ITEM(result, 4, PyInt_FromLong(ru.ru_idrss)); @@ -100,6 +101,7 @@ PyStructSequence_SET_ITEM(result, 13, PyInt_FromLong(ru.ru_nsignals)); PyStructSequence_SET_ITEM(result, 14, PyInt_FromLong(ru.ru_nvcsw)); PyStructSequence_SET_ITEM(result, 15, PyInt_FromLong(ru.ru_nivcsw)); +#endif if (PyErr_Occurred()) { Py_DECREF(result); diff -ruN Python-2.7.1-orig/Modules/socketmodule.c Python-2.7.1/Modules/socketmodule.c --- Python-2.7.1-orig/Modules/socketmodule.c 2010-10-27 16:35:26.048234496 -0400 +++ Python-2.7.1/Modules/socketmodule.c 2010-11-28 06:45:28.049545216 -0500 @@ -4756,7 +4756,9 @@ #ifndef __BEOS__ /* 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 -ruN Python-2.7.1-orig/Modules/socketmodule.h Python-2.7.1/Modules/socketmodule.h --- Python-2.7.1-orig/Modules/socketmodule.h 2010-05-09 10:46:46.042729472 -0400 +++ Python-2.7.1/Modules/socketmodule.h 2010-11-28 06:45:28.051118080 -0500 @@ -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 -ruN Python-2.7.1-orig/Modules/spwdmodule.c Python-2.7.1/Modules/spwdmodule.c --- Python-2.7.1-orig/Modules/spwdmodule.c 2010-05-09 10:46:46.061341696 -0400 +++ Python-2.7.1/Modules/spwdmodule.c 2010-11-28 06:45:28.053739520 -0500 @@ -79,7 +79,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 -ruN Python-2.7.1-orig/Modules/timemodule.c Python-2.7.1/Modules/timemodule.c --- Python-2.7.1-orig/Modules/timemodule.c 2010-06-05 10:54:26.060030976 -0400 +++ Python-2.7.1/Modules/timemodule.c 2010-11-28 06:45:28.057147392 -0500 @@ -994,11 +994,11 @@ return -1; } Py_END_ALLOW_THREADS -#elif defined(__BEOS__) +#elif defined(__BEOS__) || defined(__HAIKU__) /* This sleep *CAN BE* interrupted. */ { if( secs <= 0.0 ) { - return; + return 0; } Py_BEGIN_ALLOW_THREADS diff -ruN Python-2.7.1-orig/Parser/asdl_c.py Python-2.7.1/Parser/asdl_c.py --- Python-2.7.1-orig/Parser/asdl_c.py 2010-06-09 15:45:04.051118080 -0400 +++ Python-2.7.1/Parser/asdl_c.py 2010-11-28 06:45:28.060030976 -0500 @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /bin/env python """Generate C code from an ASDL description.""" # TO DO diff -ruN Python-2.7.1-orig/Python/bltinmodule.c Python-2.7.1/Python/bltinmodule.c --- Python-2.7.1-orig/Python/bltinmodule.c 2010-05-09 10:46:46.022020096 -0400 +++ Python-2.7.1/Python/bltinmodule.c 2010-11-29 05:45:30.041680896 -0500 @@ -19,7 +19,7 @@ */ #if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) const char *Py_FileSystemDefaultEncoding = "mbcs"; -#elif defined(__APPLE__) +#elif defined(__APPLE__) || defined(__HAIKU__) const char *Py_FileSystemDefaultEncoding = "utf-8"; #else const char *Py_FileSystemDefaultEncoding = NULL; /* use default */ diff -ruN Python-2.7.1-orig/Tools/scripts/h2py.py Python-2.7.1/Tools/scripts/h2py.py --- Python-2.7.1-orig/Tools/scripts/h2py.py 2010-11-26 03:10:41.041156608 -0500 +++ Python-2.7.1/Tools/scripts/h2py.py 2010-11-28 06:45:28.062128128 -0500 @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /bin/env python # Read #define's and translate to Python code. # Handle #include statements. @@ -50,7 +50,7 @@ searchdirs=os.environ['INCLUDE'].split(';') except KeyError: try: - if sys.platform.find("beos") == 0: + if sys.platform.find("beos") == 0 or sys.platform.find("haiku1") == 0: searchdirs=os.environ['BEINCLUDES'].split(';') elif sys.platform.startswith("atheos"): searchdirs=os.environ['C_INCLUDE_PATH'].split(':') diff -ruN Python-2.7.1-orig/configure.in Python-2.7.1/configure.in --- Python-2.7.1-orig/configure.in 2010-10-31 21:47:19.049020928 -0400 +++ Python-2.7.1/configure.in 2010-11-28 06:45:28.067108864 -0500 @@ -12,7 +12,7 @@ [], [m4_fatal([Autoconf version $1 is required for Python], 63)]) ]) -version_required(2.65) +#version_required(2.65) AC_REVISION($Revision: 86076 $) AC_INIT(python, PYTHON_VERSION, http://bugs.python.org/) @@ -785,7 +785,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$(VERSION).so' BLDLIBRARY='-L. -lpython$(VERSION)' RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} @@ -874,7 +874,7 @@ AC_SUBST(LN) if test -z "$LN" ; then case $ac_sys_system in - BeOS*) LN="ln -s";; + BeOS*|Haiku*) LN="ln -s";; CYGWIN*) LN="ln -s";; atheos*) LN="ln -s";; *) LN=ln;; @@ -1844,7 +1844,7 @@ fi fi ;; - Linux*|GNU*|QNX*) + Linux*|GNU*|QNX*|Haiku*) LDSHARED='$(CC) -shared' LDCXXSHARED='$(CXX) -shared';; BSD/OS*/4*) @@ -1916,7 +1916,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*) @@ -1948,7 +1948,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/*) # -u _PyMac_Error is needed to pull in the mac toolbox glue, @@ -2063,14 +2063,16 @@ esac # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl. -# BeOS' sockets are stashed in libnet. AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets +# BeOS' sockets are stashed in libnet. +# Haiku's sockets are stashed in libnetwork. case "$ac_sys_system" in -BeOS*) -AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS) # BeOS -;; + BeOS*) + AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS);; + Haiku*) + AC_CHECK_LIB(network, socket, [LIBS="-lnetwork $LIBS"], [], $LIBS);; esac AC_MSG_CHECKING(for --with-libs) @@ -3371,7 +3373,7 @@ AC_SUBST(LIBM) case $ac_sys_system in Darwin) ;; -BeOS) ;; +BeOS|Haiku) ;; *) LIBM=-lm esac AC_MSG_CHECKING(for --with-libm=STRING) diff -ruN Python-2.7.1-orig/setup.py Python-2.7.1/setup.py --- Python-2.7.1-orig/setup.py 2010-10-31 12:40:21.052166656 -0400 +++ Python-2.7.1/setup.py 2010-11-28 06:45:28.070516736 -0500 @@ -423,6 +423,11 @@ lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep) inc_dirs += ['/system/include', '/atheos/autolnk/include'] inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep) + + # Haiku-specific include and library locations + 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']: @@ -447,7 +452,7 @@ # Check for MacOS X, which doesn't need libm.a at all math_libs = ['m'] - if platform in ['darwin', 'beos']: + if platform in ['darwin', 'beos', 'haiku1']: math_libs = [] # XXX Omitted modules: gl, pure, dl, SGI-specific modules @@ -1206,7 +1211,7 @@ missing.append('resource') # Sun yellow pages. Some systems have the functions in libc. - if (platform not in ['cygwin', 'atheos', 'qnx6'] and + if (platform not in ['cygwin', 'atheos', 'qnx6', 'haiku1'] and find_file('rpcsvc/yp_prot.h', inc_dirs, []) is not None): if (self.compiler.find_library_file(lib_dirs, 'nsl')): libs = ['nsl']