mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-09 13:20:08 +02:00
* the header for bzip2 has been moved out of its subdir recently, so python was no longer building the bz2 module
853 lines
29 KiB
Plaintext
853 lines
29 KiB
Plaintext
From 5ccf5800d437d3abbfd13b4f2ccf86b1606deb8c Mon Sep 17 00:00:00 2001
|
|
From: Oliver Tappe <zooey@hirschkaefer.de>
|
|
Date: Sat, 12 Oct 2013 17:37:25 +0200
|
|
Subject: applying patch python-2.6.8.patch
|
|
|
|
|
|
diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py
|
|
index aeb6b74..2edcc48 100644
|
|
--- a/Lib/distutils/command/build_ext.py
|
|
+++ b/Lib/distutils/command/build_ext.py
|
|
@@ -234,9 +234,13 @@ class build_ext (Command):
|
|
|
|
# for extensions under Linux or Solaris with a shared Python library,
|
|
# Python's library directory must be appended to library_dirs
|
|
+ # For Haiku the situation is similar, though more correctly the
|
|
+ # develop/lib path should be used. Due to the naming scheme used for the
|
|
+ # python library it works nonetheless.
|
|
sysconfig.get_config_var('Py_ENABLE_SHARED')
|
|
if ((sys.platform.startswith('linux') or sys.platform.startswith('gnu')
|
|
- or sys.platform.startswith('sunos'))
|
|
+ or sys.platform.startswith('sunos')
|
|
+ or sys.platform.startswith('haiku'))
|
|
and sysconfig.get_config_var('Py_ENABLE_SHARED')):
|
|
if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")):
|
|
# building third party extensions
|
|
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
|
|
index 46d23ec..5354cf1 100644
|
|
--- a/Lib/distutils/sysconfig.py
|
|
+++ b/Lib/distutils/sysconfig.py
|
|
@@ -85,7 +85,8 @@ def get_python_inc(plat_specific=0, prefix=None):
|
|
# Include is located in the srcdir
|
|
inc_dir = os.path.join(srcdir, "Include")
|
|
return inc_dir
|
|
- return os.path.join(prefix, "include", "python" + get_python_version())
|
|
+ inc_dir = "include" if sys.platform != "haiku1" else "develop/headers"
|
|
+ return os.path.join(prefix, inc_dir, "python" + get_python_version())
|
|
elif os.name == "nt":
|
|
return os.path.join(prefix, "include")
|
|
elif os.name == "mac":
|
|
diff --git a/Lib/plat-haiku1/IN.py b/Lib/plat-haiku1/IN.py
|
|
new file mode 100644
|
|
index 0000000..362cb41
|
|
--- /dev/null
|
|
+++ b/Lib/plat-haiku1/IN.py
|
|
@@ -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 --git a/Lib/plat-haiku1/regen b/Lib/plat-haiku1/regen
|
|
new file mode 100644
|
|
index 0000000..d9da80c
|
|
--- /dev/null
|
|
+++ b/Lib/plat-haiku1/regen
|
|
@@ -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 --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py
|
|
index 7eeef7b..b1938fd 100644
|
|
--- a/Lib/test/test_fileio.py
|
|
+++ b/Lib/test/test_fileio.py
|
|
@@ -152,6 +152,7 @@ class OtherFileTests(unittest.TestCase):
|
|
self.assertEquals(f.writable(), True)
|
|
if sys.platform != "darwin" and \
|
|
'bsd' not in sys.platform and \
|
|
+ 'haiku' not in sys.platform and \
|
|
not sys.platform.startswith('sunos'):
|
|
# Somehow /dev/tty appears seekable on some BSDs
|
|
self.assertEquals(f.seekable(), False)
|
|
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
|
index ce4fbdc..aba9464 100644
|
|
--- a/Makefile.pre.in
|
|
+++ b/Makefile.pre.in
|
|
@@ -90,7 +90,7 @@ BINDIR= @bindir@
|
|
LIBDIR= @libdir@
|
|
MANDIR= @mandir@
|
|
INCLUDEDIR= @includedir@
|
|
-CONFINCLUDEDIR= $(exec_prefix)/include
|
|
+CONFINCLUDEDIR= $(INCLUDEDIR)
|
|
SCRIPTDIR= $(prefix)/lib
|
|
|
|
# Detailed destination directories
|
|
diff --git a/Modules/resource.c b/Modules/resource.c
|
|
index 9993b93..f8befde 100644
|
|
--- a/Modules/resource.c
|
|
+++ b/Modules/resource.c
|
|
@@ -86,6 +86,7 @@ resource_getrusage(PyObject *self, PyObject *args)
|
|
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,7 +101,7 @@ resource_getrusage(PyObject *self, PyObject *args)
|
|
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);
|
|
return NULL;
|
|
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
|
|
index a28116c..62c5813 100644
|
|
--- a/Modules/socketmodule.c
|
|
+++ b/Modules/socketmodule.c
|
|
@@ -4661,7 +4661,9 @@ init_socket(void)
|
|
#ifndef __BEOS__
|
|
/* We have incomplete socket support. */
|
|
PyModule_AddIntConstant(m, "SOCK_RAW", SOCK_RAW);
|
|
- PyModule_AddIntConstant(m, "SOCK_SEQPACKET", SOCK_SEQPACKET);
|
|
+#ifndef __HAIKU__
|
|
+ PyModule_AddIntConstant(m, "SOCK_SEQPACKET", SOCK_SEQPACKET);
|
|
+#endif
|
|
#if defined(SOCK_RDM)
|
|
PyModule_AddIntConstant(m, "SOCK_RDM", SOCK_RDM);
|
|
#endif
|
|
diff --git a/Modules/socketmodule.h b/Modules/socketmodule.h
|
|
index 9b85773..8e35a64 100644
|
|
--- a/Modules/socketmodule.h
|
|
+++ b/Modules/socketmodule.h
|
|
@@ -47,6 +47,10 @@ typedef int socklen_t;
|
|
# undef AF_NETLINK
|
|
#endif
|
|
|
|
+#if defined(__HAIKU__)
|
|
+#undef HAVE_BLUETOOTH_BLUETOOTH_H
|
|
+#endif
|
|
+
|
|
#ifdef HAVE_BLUETOOTH_BLUETOOTH_H
|
|
#include <bluetooth/bluetooth.h>
|
|
#include <bluetooth/rfcomm.h>
|
|
diff --git a/Modules/spwdmodule.c b/Modules/spwdmodule.c
|
|
index 957de58..69be5bb 100644
|
|
--- a/Modules/spwdmodule.c
|
|
+++ b/Modules/spwdmodule.c
|
|
@@ -79,7 +79,9 @@ static PyObject *mkspent(struct spwd *p)
|
|
|
|
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 --git a/Python/bltinmodule.c b/Python/bltinmodule.c
|
|
index 57d9df8..83c9a2e 100644
|
|
--- a/Python/bltinmodule.c
|
|
+++ b/Python/bltinmodule.c
|
|
@@ -18,7 +18,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 --git a/Tools/scripts/h2py.py b/Tools/scripts/h2py.py
|
|
index 63e7336..65cd21f 100755
|
|
--- a/Tools/scripts/h2py.py
|
|
+++ b/Tools/scripts/h2py.py
|
|
@@ -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 @@ except KeyError:
|
|
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 --git a/configure.in b/configure.in
|
|
index f3d34f2..aedd433 100644
|
|
--- a/configure.in
|
|
+++ b/configure.in
|
|
@@ -745,7 +745,7 @@ if test $enable_shared = "yes"; then
|
|
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}
|
|
@@ -753,6 +753,9 @@ if test $enable_shared = "yes"; then
|
|
FreeBSD*)
|
|
SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
|
|
;;
|
|
+ Haiku*)
|
|
+ RUNSHARED=LIBRARY_PATH=`pwd`:${LIBRARY_PATH}
|
|
+ ;;
|
|
esac
|
|
INSTSONAME="$LDLIBRARY".$SOVERSION
|
|
;;
|
|
@@ -823,7 +826,7 @@ AC_PROG_INSTALL
|
|
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;;
|
|
@@ -1829,7 +1832,7 @@ then
|
|
fi
|
|
fi
|
|
;;
|
|
- Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared';;
|
|
+ Linux*|GNU*|QNX*|Haiku*) LDSHARED='$(CC) -shared';;
|
|
BSD/OS*/4*) LDSHARED="gcc -shared";;
|
|
FreeBSD*)
|
|
if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
|
|
@@ -1883,7 +1886,7 @@ then
|
|
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*)
|
|
@@ -1916,7 +1919,7 @@ then
|
|
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,
|
|
@@ -2035,6 +2038,9 @@ case "$ac_sys_system" in
|
|
BeOS*)
|
|
AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS) # BeOS
|
|
;;
|
|
+Haiku*)
|
|
+AC_CHECK_LIB(network, socket, [LIBS="-lnetwork $LIBS"], [], $LIBS) # Haiku
|
|
+;;
|
|
esac
|
|
|
|
AC_MSG_CHECKING(for --with-libs)
|
|
@@ -3265,7 +3271,7 @@ fi],
|
|
AC_SUBST(LIBM)
|
|
case $ac_sys_system in
|
|
Darwin) ;;
|
|
-BeOS) ;;
|
|
+BeOS|Haiku) ;;
|
|
*) LIBM=-lm
|
|
esac
|
|
AC_MSG_CHECKING(for --with-libm=STRING)
|
|
diff --git a/setup.py b/setup.py
|
|
index 4fe1f45..930a368 100644
|
|
--- a/setup.py
|
|
+++ b/setup.py
|
|
@@ -428,6 +428,15 @@ class PyBuildExt(build_ext):
|
|
inc_dirs += ['/system/include', '/atheos/autolnk/include']
|
|
inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep)
|
|
|
|
+ if platform == 'haiku1':
|
|
+ inc_dirs += ['/boot/common/non-packaged/develop/headers',
|
|
+ '/boot/common/develop/headers',
|
|
+ '/boot/system/develop/headers/posix',
|
|
+ '/boot/system/develop/headers']
|
|
+ lib_dirs += ['/boot/common/non-packaged/develop/lib',
|
|
+ '/boot/common/develop/lib',
|
|
+ '/boot/system/develop/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']
|
|
@@ -451,7 +460,7 @@ class PyBuildExt(build_ext):
|
|
|
|
# Check for MacOS X, which doesn't need libm.a at all
|
|
math_libs = ['m']
|
|
- if platform in ['darwin', 'beos', 'mac']:
|
|
+ if platform in ['darwin', 'beos', 'haiku1', 'mac']:
|
|
math_libs = []
|
|
|
|
# XXX Omitted modules: gl, pure, dl, SGI-specific modules
|
|
@@ -694,15 +703,22 @@ class PyBuildExt(build_ext):
|
|
'/usr/local/ssl/include',
|
|
'/usr/contrib/ssl/include/'
|
|
]
|
|
- ssl_incs = find_file('openssl/ssl.h', inc_dirs,
|
|
+ ssl_incs = find_file('openssl/ssl.h', [],
|
|
+ inc_dirs + search_for_ssl_incs_in
|
|
+ )
|
|
+ ssl_incs_to_add = find_file('openssl/ssl.h', inc_dirs,
|
|
search_for_ssl_incs_in
|
|
)
|
|
if ssl_incs is not None:
|
|
krb5_h = find_file('krb5.h', inc_dirs,
|
|
['/usr/kerberos/include'])
|
|
if krb5_h:
|
|
- ssl_incs += krb5_h
|
|
- ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
|
|
+ ssl_incs_to_add += krb5_h
|
|
+ ssl_libs = find_library_file(self.compiler, 'ssl', [],
|
|
+ lib_dirs + ['/usr/local/ssl/lib',
|
|
+ '/usr/contrib/ssl/lib/'
|
|
+ ] )
|
|
+ ssl_libs_to_add = find_library_file(self.compiler, 'ssl', lib_dirs,
|
|
['/usr/local/ssl/lib',
|
|
'/usr/contrib/ssl/lib/'
|
|
] )
|
|
@@ -710,8 +726,8 @@ class PyBuildExt(build_ext):
|
|
if (ssl_incs is not None and
|
|
ssl_libs is not None):
|
|
exts.append( Extension('_ssl', ['_ssl.c'],
|
|
- include_dirs = ssl_incs,
|
|
- library_dirs = ssl_libs,
|
|
+ include_dirs = ssl_incs_to_add,
|
|
+ library_dirs = ssl_libs_to_add,
|
|
libraries = ['ssl', 'crypto'],
|
|
depends = ['socketmodule.h']), )
|
|
else:
|
|
@@ -746,8 +762,8 @@ class PyBuildExt(build_ext):
|
|
# The _hashlib module wraps optimized implementations
|
|
# of hash functions from the OpenSSL library.
|
|
exts.append( Extension('_hashlib', ['_hashopenssl.c'],
|
|
- include_dirs = ssl_incs,
|
|
- library_dirs = ssl_libs,
|
|
+ include_dirs = ssl_incs_to_add,
|
|
+ library_dirs = ssl_libs_to_add,
|
|
libraries = ['ssl', 'crypto']) )
|
|
# these aren't strictly missing since they are unneeded.
|
|
#missing.extend(['_sha', '_md5'])
|
|
@@ -1176,7 +1192,7 @@ class PyBuildExt(build_ext):
|
|
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']
|
|
--
|
|
1.8.3.4
|
|
|
|
|
|
From a47dd1d32150a36714bdf527f0153d387ebff8c9 Mon Sep 17 00:00:00 2001
|
|
From: Oliver Tappe <zooey@hirschkaefer.de>
|
|
Date: Sun, 13 Oct 2013 17:01:30 +0200
|
|
Subject: Adjust package folders for Python modules.
|
|
|
|
* move standard site-packaged into non-packaged hierarchy, as it has to
|
|
be writable
|
|
* rename directory for packaged python modules to 'vendor-packages'
|
|
* add support for automatically switching to 'vendor-packages' directory
|
|
when environment variable 'HAIKU_USE_VENDOR_DIRECTORIES' is set
|
|
|
|
diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
|
|
index 44c7692..ff8c01e 100644
|
|
--- a/Lib/distutils/command/install.py
|
|
+++ b/Lib/distutils/command/install.py
|
|
@@ -97,6 +97,34 @@ INSTALL_SCHEMES = {
|
|
'scripts': '$userbase/bin',
|
|
'data' : '$userbase',
|
|
},
|
|
+ 'haiku': {
|
|
+ 'purelib': '$base/non-packaged/lib/python$py_version_short/site-packages',
|
|
+ 'platlib': '$platbase/non-packaged/lib/python$py_version_short/site-packages',
|
|
+ 'headers': '$base/non-packaged/develop/headers/python$py_version_short/$dist_name',
|
|
+ 'scripts': '$base/non-packaged/bin',
|
|
+ 'data' : '$base/non-packaged',
|
|
+ },
|
|
+ 'haiku_vendor': {
|
|
+ 'purelib': '$base/lib/python$py_version_short/vendor-packages',
|
|
+ 'platlib': '$platbase/lib/python$py_version_short/vendor-packages',
|
|
+ 'headers': '$base/develop/headers/python$py_version_short/$dist_name',
|
|
+ 'scripts': '$base/bin',
|
|
+ 'data' : '$base',
|
|
+ },
|
|
+ 'haiku_home': {
|
|
+ 'purelib': '$base/lib/python',
|
|
+ 'platlib': '$base/lib/python',
|
|
+ 'headers': '$base/develop/headers/python/$dist_name',
|
|
+ 'scripts': '$base/bin',
|
|
+ 'data' : '$base',
|
|
+ },
|
|
+ 'haiku_user': {
|
|
+ 'purelib': '$usersite',
|
|
+ 'platlib': '$usersite',
|
|
+ 'headers': '$userbase/develop/headers/python$py_version_short/$dist_name',
|
|
+ 'scripts': '$userbase/bin',
|
|
+ 'data' : '$userbase',
|
|
+ },
|
|
}
|
|
|
|
# The keys to an installation scheme; if any new types of files are to be
|
|
@@ -430,10 +458,16 @@ class install (Command):
|
|
raise DistutilsPlatformError(
|
|
"User base directory is not specified")
|
|
self.install_base = self.install_platbase = self.install_userbase
|
|
- self.select_scheme("unix_user")
|
|
+ if sys.platform.startswith('haiku'):
|
|
+ self.select_scheme("haiku_user")
|
|
+ else:
|
|
+ self.select_scheme("unix_user")
|
|
elif self.home is not None:
|
|
self.install_base = self.install_platbase = self.home
|
|
- self.select_scheme("unix_home")
|
|
+ if sys.platform.startswith('haiku'):
|
|
+ self.select_scheme("haiku_home")
|
|
+ else:
|
|
+ self.select_scheme("unix_home")
|
|
else:
|
|
if self.prefix is None:
|
|
if self.exec_prefix is not None:
|
|
@@ -449,7 +483,13 @@ class install (Command):
|
|
|
|
self.install_base = self.prefix
|
|
self.install_platbase = self.exec_prefix
|
|
- self.select_scheme("unix_prefix")
|
|
+ if sys.platform.startswith('haiku'):
|
|
+ if os.environ.get('HAIKU_USE_VENDOR_DIRECTORIES') == '1':
|
|
+ self.select_scheme("haiku_vendor")
|
|
+ else:
|
|
+ self.select_scheme("haiku")
|
|
+ else:
|
|
+ self.select_scheme("unix_prefix")
|
|
|
|
# finalize_unix ()
|
|
|
|
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
|
|
index 5354cf1..017a94c 100644
|
|
--- a/Lib/distutils/sysconfig.py
|
|
+++ b/Lib/distutils/sysconfig.py
|
|
@@ -120,12 +120,20 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
|
|
prefix = plat_specific and EXEC_PREFIX or PREFIX
|
|
|
|
if os.name == "posix":
|
|
- libpython = os.path.join(prefix,
|
|
- "lib", "python" + get_python_version())
|
|
- if standard_lib:
|
|
- return libpython
|
|
+ if sys.platform.startswith('haiku'):
|
|
+ if standard_lib:
|
|
+ return os.path.join(prefix,
|
|
+ "lib", "python" + get_python_version())
|
|
+ return os.path.join(prefix, "non-packaged",
|
|
+ "lib", "python" + get_python_version(),
|
|
+ "site-packages")
|
|
else:
|
|
- return os.path.join(libpython, "site-packages")
|
|
+ libpython = os.path.join(prefix,
|
|
+ "lib", "python" + get_python_version())
|
|
+ if standard_lib:
|
|
+ return libpython
|
|
+ else:
|
|
+ return os.path.join(libpython, "site-packages")
|
|
|
|
elif os.name == "nt":
|
|
if standard_lib:
|
|
diff --git a/Lib/site.py b/Lib/site.py
|
|
index 66c56c2..304f994 100644
|
|
--- a/Lib/site.py
|
|
+++ b/Lib/site.py
|
|
@@ -241,6 +241,11 @@ def addusersitepackages(known_paths):
|
|
USER_SITE = os.path.join(USER_BASE,
|
|
"Python" + sys.version[0] + sys.version[2],
|
|
"site-packages")
|
|
+ elif sys.platform.startswith('haiku'):
|
|
+ USER_BASE = env_base if env_base else joinuser("~", "non-packaged")
|
|
+ USER_SITE = os.path.join(USER_BASE, "lib",
|
|
+ "python" + sys.version[:3],
|
|
+ "site-packages")
|
|
else:
|
|
USER_BASE = env_base if env_base else joinuser("~", ".local")
|
|
USER_SITE = os.path.join(USER_BASE, "lib",
|
|
@@ -264,6 +269,13 @@ def addsitepackages(known_paths):
|
|
|
|
if sys.platform in ('os2emx', 'riscos'):
|
|
sitedirs.append(os.path.join(prefix, "Lib", "site-packages"))
|
|
+ elif sys.platform.startswith('haiku'):
|
|
+ sitedirs.append(os.path.join(prefix, "non-packaged", "lib",
|
|
+ "python" + sys.version[:3],
|
|
+ "site-packages"))
|
|
+ sitedirs.append(os.path.join(prefix, "lib",
|
|
+ "python" + sys.version[:3],
|
|
+ "vendor-packages"))
|
|
elif os.sep == '/':
|
|
sitedirs.append(os.path.join(prefix, "lib",
|
|
"python" + sys.version[:3],
|
|
--
|
|
1.8.3.4
|
|
|
|
|
|
From 17c8d2590189838ef19b08fb0ce7976d03b1cabc Mon Sep 17 00:00:00 2001
|
|
From: Oliver Tappe <zooey@hirschkaefer.de>
|
|
Date: Sun, 13 Oct 2013 17:06:48 +0200
|
|
Subject: Drop references to common hierarchy.
|
|
|
|
|
|
diff --git a/setup.py b/setup.py
|
|
index 930a368..41a16a2 100644
|
|
--- a/setup.py
|
|
+++ b/setup.py
|
|
@@ -429,13 +429,9 @@ class PyBuildExt(build_ext):
|
|
inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep)
|
|
|
|
if platform == 'haiku1':
|
|
- inc_dirs += ['/boot/common/non-packaged/develop/headers',
|
|
- '/boot/common/develop/headers',
|
|
- '/boot/system/develop/headers/posix',
|
|
+ inc_dirs += ['/boot/system/develop/headers/posix',
|
|
'/boot/system/develop/headers']
|
|
- lib_dirs += ['/boot/common/non-packaged/develop/lib',
|
|
- '/boot/common/develop/lib',
|
|
- '/boot/system/develop/lib']
|
|
+ lib_dirs += ['/boot/system/develop/lib']
|
|
|
|
# OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb)
|
|
if platform in ['osf1', 'unixware7', 'openunix8']:
|
|
--
|
|
1.8.3.4
|
|
|