mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-21 19:20:08 +02:00
python: bump to 2.7.16 and 3.7.3.
remove old recipes and patches.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
From 3b7516a223d3d346e9d4f81238daf7ff0574f2b7 Mon Sep 17 00:00:00 2001
|
||||
From f30d4b172ebf8ec7d8db600b2ad041cc3a8c58e7 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Duval <jerome.duval@gmail.com>
|
||||
Date: Wed, 12 Mar 2014 21:17:06 +0000
|
||||
Subject: initial Haiku patch
|
||||
@@ -465,10 +465,10 @@ index 0000000..d9da80c
|
||||
+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 2825a87..26ca80f 100644
|
||||
index 57c9f14..54a7ce8 100644
|
||||
--- a/Lib/test/test_fileio.py
|
||||
+++ b/Lib/test/test_fileio.py
|
||||
@@ -308,6 +308,7 @@ class OtherFileTests(unittest.TestCase):
|
||||
@@ -312,6 +312,7 @@ class OtherFileTests(unittest.TestCase):
|
||||
self.assertEqual(f.writable(), True)
|
||||
if sys.platform != "darwin" and \
|
||||
'bsd' not in sys.platform and \
|
||||
@@ -497,10 +497,10 @@ index 53a6c3e..6c5f52f 100644
|
||||
if (PyErr_Occurred()) {
|
||||
Py_DECREF(result);
|
||||
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
|
||||
index 8d36705..11cacdc 100644
|
||||
index 0139754..1d4ef23 100644
|
||||
--- a/Modules/socketmodule.c
|
||||
+++ b/Modules/socketmodule.c
|
||||
@@ -4896,7 +4896,9 @@ init_socket(void)
|
||||
@@ -4898,7 +4898,9 @@ init_socket(void)
|
||||
#ifndef __BEOS__
|
||||
/* We have incomplete socket support. */
|
||||
PyModule_AddIntConstant(m, "SOCK_RAW", SOCK_RAW);
|
||||
@@ -558,7 +558,7 @@ index 61b8d61..5e5d93c 100644
|
||||
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
|
||||
index 9ce3b27..cb10c50 100644
|
||||
index 4b819da..46ba828 100644
|
||||
--- a/Python/bltinmodule.c
|
||||
+++ b/Python/bltinmodule.c
|
||||
@@ -19,7 +19,7 @@
|
||||
@@ -584,7 +584,7 @@ index 40b1bce..4185370 100755
|
||||
elif sys.platform.startswith("atheos"):
|
||||
searchdirs=os.environ['C_INCLUDE_PATH'].split(':')
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 913d546..d24f175 100644
|
||||
index aecf606..206d2ec 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -923,7 +923,7 @@ if test $enable_shared = "yes"; then
|
||||
@@ -615,7 +615,7 @@ index 913d546..d24f175 100644
|
||||
CYGWIN*) LN="ln -s";;
|
||||
atheos*) LN="ln -s";;
|
||||
*) LN=ln;;
|
||||
@@ -2233,7 +2236,7 @@ then
|
||||
@@ -2240,7 +2243,7 @@ then
|
||||
BLDSHARED="$LDSHARED"
|
||||
fi
|
||||
;;
|
||||
@@ -624,7 +624,7 @@ index 913d546..d24f175 100644
|
||||
LDSHARED='$(CC) -shared'
|
||||
LDCXXSHARED='$(CXX) -shared';;
|
||||
BSD/OS*/4*)
|
||||
@@ -2305,7 +2308,7 @@ then
|
||||
@@ -2312,7 +2315,7 @@ then
|
||||
then CCSHARED="-fPIC";
|
||||
else CCSHARED="+z";
|
||||
fi;;
|
||||
@@ -633,7 +633,7 @@ index 913d546..d24f175 100644
|
||||
BSD/OS*/4*) CCSHARED="-fpic";;
|
||||
FreeBSD*|NetBSD*|OpenBSD*|DragonFly*) CCSHARED="-fPIC";;
|
||||
OpenUNIX*|UnixWare*)
|
||||
@@ -2337,7 +2340,7 @@ then
|
||||
@@ -2344,7 +2347,7 @@ then
|
||||
LINKFORSHARED="-Wl,-E -Wl,+s";;
|
||||
# LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
|
||||
BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
|
||||
@@ -642,7 +642,7 @@ index 913d546..d24f175 100644
|
||||
# -u libsys_s pulls in all symbols in libsys
|
||||
Darwin/*)
|
||||
# -u _PyMac_Error is needed to pull in the mac toolbox glue,
|
||||
@@ -2452,14 +2455,16 @@ case "$ac_sys_system" in
|
||||
@@ -2459,14 +2462,16 @@ case "$ac_sys_system" in
|
||||
esac
|
||||
|
||||
# Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
|
||||
@@ -663,7 +663,7 @@ index 913d546..d24f175 100644
|
||||
esac
|
||||
|
||||
AC_MSG_CHECKING(for --with-libs)
|
||||
@@ -3798,7 +3803,7 @@ fi],
|
||||
@@ -3812,7 +3817,7 @@ fi],
|
||||
AC_SUBST(LIBM)
|
||||
case $ac_sys_system in
|
||||
Darwin) ;;
|
||||
@@ -756,10 +756,10 @@ index 33cecc6..b57b321 100644
|
||||
|
||||
libs = []
|
||||
--
|
||||
2.19.1
|
||||
2.21.0
|
||||
|
||||
|
||||
From adc15e554f78d0d515046bfb81ea15c3a678ebe7 Mon Sep 17 00:00:00 2001
|
||||
From 7b55a07d0e0ae2712ab592cce0ba7c5d7bce7fa3 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Duval <jerome.duval@gmail.com>
|
||||
Date: Sat, 5 Apr 2014 21:16:40 +0000
|
||||
Subject: fix pyconfig.h path
|
||||
@@ -779,10 +779,10 @@ index 9297e7f..abbeb60 100644
|
||||
|
||||
# Detailed destination directories
|
||||
--
|
||||
2.19.1
|
||||
2.21.0
|
||||
|
||||
|
||||
From 7f6503b3215a3a772f14f6b93e9fe32ca1152f09 Mon Sep 17 00:00:00 2001
|
||||
From 06e07e7c6df2f06f435687643b9cb6cd836bdb7f Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Wed, 18 Jun 2014 12:19:13 +0000
|
||||
Subject: Import missed change from the 2.6.9 patches
|
||||
@@ -811,10 +811,10 @@ index 3b51e81..11fb12c 100644
|
||||
sitepackages.append(os.path.join(prefix, "lib",
|
||||
"python" + sys.version[:3],
|
||||
--
|
||||
2.19.1
|
||||
2.21.0
|
||||
|
||||
|
||||
From 2df1c86d8d8346aa54b9d8bde5911d8ee00543f2 Mon Sep 17 00:00:00 2001
|
||||
From 95f8cc6a804975272637a0588fa9755eb31163a3 Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Sun, 21 Sep 2014 18:59:44 +0200
|
||||
Subject: gcc2 fix.
|
||||
@@ -834,10 +834,10 @@ index 37f5a9e..37b0b25 100644
|
||||
#endif
|
||||
#define LIKELY(x) __builtin_expect(!!(x),1)
|
||||
--
|
||||
2.19.1
|
||||
2.21.0
|
||||
|
||||
|
||||
From 827568129835e5d0a67fe51b82ea867fa8ab4a29 Mon Sep 17 00:00:00 2001
|
||||
From fc577acd82a0a9244d8f871ba1016923dcef5df9 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Duval <jerome.duval@gmail.com>
|
||||
Date: Fri, 28 Nov 2014 16:26:28 +0000
|
||||
Subject: tarfile: let link fail and catch exception.
|
||||
@@ -866,10 +866,10 @@ index adf91d5..f284408 100644
|
||||
self._extract_member(self._find_link_target(tarinfo), targetpath)
|
||||
except KeyError:
|
||||
--
|
||||
2.19.1
|
||||
2.21.0
|
||||
|
||||
|
||||
From 75b1b8ae5efbf1ca73a3f5d04915cfb5dcfd55c0 Mon Sep 17 00:00:00 2001
|
||||
From 4c3a6e25aa0d2c32d5746a13108a170452255bd5 Mon Sep 17 00:00:00 2001
|
||||
From: Timothy Gu <timothygu99@gmail.com>
|
||||
Date: Sun, 11 Jan 2015 18:18:22 -0800
|
||||
Subject: Fix resource module after the initial haiku patch
|
||||
@@ -902,10 +902,10 @@ index 6c5f52f..73758bb 100644
|
||||
|
||||
if (PyErr_Occurred()) {
|
||||
--
|
||||
2.19.1
|
||||
2.21.0
|
||||
|
||||
|
||||
From c79d2bf308dd1400ef40aa6bd06cc956920ff38d Mon Sep 17 00:00:00 2001
|
||||
From bed36c6af79128f0e54922b951320a825dc59fbd Mon Sep 17 00:00:00 2001
|
||||
From: Timothy Gu <timothygu99@gmail.com>
|
||||
Date: Sun, 11 Jan 2015 18:40:43 -0800
|
||||
Subject: resource: Fix [gs]et_rlimit() modes detection
|
||||
@@ -981,17 +981,17 @@ index 73758bb..0c396f6 100644
|
||||
#endif
|
||||
|
||||
--
|
||||
2.19.1
|
||||
2.21.0
|
||||
|
||||
|
||||
From 68948bc3e07f60d2112edc9681e8cb8248549c71 Mon Sep 17 00:00:00 2001
|
||||
From 8687a87d528113053311ab3ebbc531224a2b00d1 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Duval <jerome.duval@gmail.com>
|
||||
Date: Tue, 26 May 2015 19:39:55 +0000
|
||||
Subject: Haiku hasn't makedev(), _PyInt_FromDev isn't defined.
|
||||
|
||||
|
||||
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
|
||||
index 2baf920..5d79438 100644
|
||||
index 7a1a694..0f226a0 100644
|
||||
--- a/Modules/posixmodule.c
|
||||
+++ b/Modules/posixmodule.c
|
||||
@@ -1489,6 +1489,8 @@ _pystat_fromstructstat(STRUCT_STAT *st)
|
||||
@@ -1004,10 +1004,10 @@ index 2baf920..5d79438 100644
|
||||
PyStructSequence_SET_ITEM(v, 2, _PyInt_FromDev(st->st_dev));
|
||||
#endif
|
||||
--
|
||||
2.19.1
|
||||
2.21.0
|
||||
|
||||
|
||||
From 87694b880f6119298522607432dcf8a127a5d17b Mon Sep 17 00:00:00 2001
|
||||
From 73fd37edd447798cc15dc53a00083346c1a9f788 Mon Sep 17 00:00:00 2001
|
||||
From: Philippe Houdoin <philippe.houdoin@gmail.com>
|
||||
Date: Tue, 23 May 2017 19:48:08 +0000
|
||||
Subject: Implement CTypes's find_library for Haiku
|
||||
@@ -1087,10 +1087,10 @@ index ab10ec5..72e495b 100644
|
||||
print cdll.LoadLibrary("libm.so")
|
||||
print cdll.LoadLibrary("libcrypt.so")
|
||||
--
|
||||
2.19.1
|
||||
2.21.0
|
||||
|
||||
|
||||
From f9854864cdda71a7ec8de6f4bc3fc1f066f8d417 Mon Sep 17 00:00:00 2001
|
||||
From fa20f098eb63bbcc688442dd0ed2de1267e889d3 Mon Sep 17 00:00:00 2001
|
||||
From: Philippe Houdoin <philippe.houdoin@gmail.com>
|
||||
Date: Wed, 24 May 2017 11:06:41 +0000
|
||||
Subject: Map 'c' and 'm' libraries to libroot.so on Haiku
|
||||
@@ -1119,5 +1119,36 @@ index 72e495b..a2cc0a1 100644
|
||||
if directory.startswith("%A/"):
|
||||
directory = directory.replace('%A',
|
||||
--
|
||||
2.19.1
|
||||
2.21.0
|
||||
|
||||
|
||||
From 6e5535881d6e13810d56c3153b7c70786d08977c Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Duval <jerome.duval@gmail.com>
|
||||
Date: Tue, 30 Apr 2019 20:39:51 +0200
|
||||
Subject: Python/thread_pthread.h: c89 fix.
|
||||
|
||||
|
||||
diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h
|
||||
index 6d4b3b3..8c42fb8 100644
|
||||
--- a/Python/thread_pthread.h
|
||||
+++ b/Python/thread_pthread.h
|
||||
@@ -184,6 +184,7 @@ PyThread_start_new_thread(void (*func)(void *), void *arg)
|
||||
{
|
||||
pthread_t th;
|
||||
int status;
|
||||
+ pythread_callback *callback;
|
||||
#if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
|
||||
pthread_attr_t attrs;
|
||||
#endif
|
||||
@@ -213,7 +214,7 @@ PyThread_start_new_thread(void (*func)(void *), void *arg)
|
||||
pthread_attr_setscope(&attrs, PTHREAD_SCOPE_SYSTEM);
|
||||
#endif
|
||||
|
||||
- pythread_callback *callback = malloc(sizeof(pythread_callback));
|
||||
+ callback = malloc(sizeof(pythread_callback));
|
||||
|
||||
if (callback == NULL) {
|
||||
return -1;
|
||||
--
|
||||
2.21.0
|
||||
|
||||
@@ -1,187 +0,0 @@
|
||||
diff -urN Python-3.2/Lib/plat-haiku/regen Python-3.2-haiku/Lib/plat-haiku/regen
|
||||
--- Python-3.2/Lib/plat-haiku/regen 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ Python-3.2-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.2/Modules/resource.c Python-3.2-haiku/Modules/resource.c
|
||||
--- Python-3.2/Modules/resource.c 2010-05-09 15:52:27.011796480 +0000
|
||||
+++ Python-3.2-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.2/Modules/socketmodule.c Python-3.2-haiku/Modules/socketmodule.c
|
||||
--- Python-3.2/Modules/socketmodule.c 2010-11-05 17:24:13.021233664 +0000
|
||||
+++ Python-3.2-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.2/Modules/socketmodule.h Python-3.2-haiku/Modules/socketmodule.h
|
||||
--- Python-3.2/Modules/socketmodule.h 2010-08-28 20:42:55.019398656 +0000
|
||||
+++ Python-3.2-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 <bluetooth/bluetooth.h>
|
||||
#include <bluetooth/rfcomm.h>
|
||||
diff -urN Python-3.2/Modules/spwdmodule.c Python-3.2-haiku/Modules/spwdmodule.c
|
||||
--- Python-3.2/Modules/spwdmodule.c 2010-05-15 16:27:27.011534336 +0000
|
||||
+++ Python-3.2-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.2/Python/bltinmodule.c Python-3.2-haiku/Python/bltinmodule.c
|
||||
--- Python-3.2/Python/bltinmodule.c 2010-10-17 20:54:53.028049408 +0000
|
||||
+++ Python-3.2-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.2/configure.in Python-3.2-haiku/configure.in
|
||||
--- Python-3.2/configure.in 2010-11-01 01:44:30.004980736 +0000
|
||||
+++ Python-3.2-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.2/setup.py Python-3.2-haiku/setup.py
|
||||
--- Python-3.2/setup.py 2010-10-31 17:11:02.000000000 +0000
|
||||
+++ Python-3.2-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']
|
||||
@@ -1,187 +0,0 @@
|
||||
diff -urN Python-3.2a3/Lib/plat-haiku/regen Python-3.2a3-haiku/Lib/plat-haiku/regen
|
||||
--- Python-3.2a3/Lib/plat-haiku/regen 1969-12-31 16:00:00.000000000 -0800
|
||||
+++ Python-3.2a3-haiku/Lib/plat-haiku/regen 2010-10-25 12:04:00.000000000 -0700
|
||||
@@ -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.2a3/Modules/resource.c Python-3.2a3-haiku/Modules/resource.c
|
||||
--- Python-3.2a3/Modules/resource.c 2010-05-09 08:52:27.038797312 -0700
|
||||
+++ Python-3.2a3-haiku/Modules/resource.c 2010-10-26 09:40:31.530055168 -0700
|
||||
@@ -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.2a3/Modules/socketmodule.c Python-3.2a3-haiku/Modules/socketmodule.c
|
||||
--- Python-3.2a3/Modules/socketmodule.c 2010-09-28 15:03:27.048234496 -0700
|
||||
+++ Python-3.2a3-haiku/Modules/socketmodule.c 2010-10-26 09:42:24.675545088 -0700
|
||||
@@ -4595,7 +4595,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.2a3/Modules/socketmodule.h Python-3.2a3-haiku/Modules/socketmodule.h
|
||||
--- Python-3.2a3/Modules/socketmodule.h 2010-08-28 13:42:55.046399488 -0700
|
||||
+++ Python-3.2a3-haiku/Modules/socketmodule.h 2010-10-26 09:36:23.904658944 -0700
|
||||
@@ -47,6 +47,10 @@
|
||||
# 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 -urN Python-3.2a3/Modules/spwdmodule.c Python-3.2a3-haiku/Modules/spwdmodule.c
|
||||
--- Python-3.2a3/Modules/spwdmodule.c 2010-05-15 09:27:27.038535168 -0700
|
||||
+++ Python-3.2a3-haiku/Modules/spwdmodule.c 2010-10-26 09:41:38.998506496 -0700
|
||||
@@ -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.2a3/Python/bltinmodule.c Python-3.2a3-haiku/Python/bltinmodule.c
|
||||
--- Python-3.2a3/Python/bltinmodule.c 2010-09-27 14:08:38.054788096 -0700
|
||||
+++ Python-3.2a3-haiku/Python/bltinmodule.c 2010-10-25 13:10:52.010747904 -0700
|
||||
@@ -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.2a3/configure.in Python-3.2a3-haiku/configure.in
|
||||
--- Python-3.2a3/configure.in 2010-10-10 01:10:16.033554432 -0700
|
||||
+++ Python-3.2a3-haiku/configure.in 2010-10-25 13:47:17.305135616 -0700
|
||||
@@ -292,6 +292,7 @@
|
||||
case $MACHDEP in
|
||||
cygwin*) MACHDEP="cygwin";;
|
||||
darwin*) MACHDEP="darwin";;
|
||||
+ haiku*) MACHDEP="haiku";;
|
||||
irix646) MACHDEP="irix6";;
|
||||
'') MACHDEP="unknown";;
|
||||
esac
|
||||
@@ -733,7 +734,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}
|
||||
@@ -818,6 +819,7 @@
|
||||
if test -z "$LN" ; then
|
||||
case $ac_sys_system in
|
||||
CYGWIN*) LN="ln -s";;
|
||||
+ Haiku*) LN="ln -s";;
|
||||
*) LN=ln;;
|
||||
esac
|
||||
fi
|
||||
@@ -1748,7 +1750,7 @@
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
- Linux*|GNU*|QNX*)
|
||||
+ Linux*|GNU*|QNX*|Haiku*)
|
||||
LDSHARED='$(CC) -shared'
|
||||
LDCXXSHARED='$(CXX) -shared';;
|
||||
BSD/OS*/4*)
|
||||
@@ -1817,7 +1819,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*)
|
||||
@@ -1848,7 +1850,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"
|
||||
@@ -1959,6 +1961,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]),
|
||||
@@ -3215,7 +3219,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.2a3/setup.py Python-3.2a3-haiku/setup.py
|
||||
--- Python-3.2a3/setup.py 2010-09-14 12:41:23.030670848 -0700
|
||||
+++ Python-3.2a3-haiku/setup.py 2010-10-25 13:06:13.069992448 -0700
|
||||
@@ -423,6 +423,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']
|
||||
@@ -444,9 +448,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
|
||||
@@ -1100,7 +1104,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']
|
||||
@@ -1,187 +0,0 @@
|
||||
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 <bluetooth/bluetooth.h>
|
||||
#include <bluetooth/rfcomm.h>
|
||||
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']
|
||||
@@ -1,187 +0,0 @@
|
||||
diff -urN Python-3.2b2/Lib/plat-haiku/regen Python-3.2b2-haiku/Lib/plat-haiku/regen
|
||||
--- Python-3.2b2/Lib/plat-haiku/regen 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ Python-3.2b2-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.2b2/Modules/resource.c Python-3.2b2-haiku/Modules/resource.c
|
||||
--- Python-3.2b2/Modules/resource.c 2010-05-09 15:52:27.011796480 +0000
|
||||
+++ Python-3.2b2-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.2b2/Modules/socketmodule.c Python-3.2b2-haiku/Modules/socketmodule.c
|
||||
--- Python-3.2b2/Modules/socketmodule.c 2010-11-05 17:24:13.021233664 +0000
|
||||
+++ Python-3.2b2-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.2b2/Modules/socketmodule.h Python-3.2b2-haiku/Modules/socketmodule.h
|
||||
--- Python-3.2b2/Modules/socketmodule.h 2010-08-28 20:42:55.019398656 +0000
|
||||
+++ Python-3.2b2-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 <bluetooth/bluetooth.h>
|
||||
#include <bluetooth/rfcomm.h>
|
||||
diff -urN Python-3.2b2/Modules/spwdmodule.c Python-3.2b2-haiku/Modules/spwdmodule.c
|
||||
--- Python-3.2b2/Modules/spwdmodule.c 2010-05-15 16:27:27.011534336 +0000
|
||||
+++ Python-3.2b2-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.2b2/Python/bltinmodule.c Python-3.2b2-haiku/Python/bltinmodule.c
|
||||
--- Python-3.2b2/Python/bltinmodule.c 2010-10-17 20:54:53.028049408 +0000
|
||||
+++ Python-3.2b2-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.2b2/configure.in Python-3.2b2-haiku/configure.in
|
||||
--- Python-3.2b2/configure.in 2010-11-01 01:44:30.004980736 +0000
|
||||
+++ Python-3.2b2-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.2b2/setup.py Python-3.2b2-haiku/setup.py
|
||||
--- Python-3.2b2/setup.py 2010-10-31 17:11:02.000000000 +0000
|
||||
+++ Python-3.2b2-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']
|
||||
@@ -1,543 +0,0 @@
|
||||
From aacc2ed7b074730d2ff7f03c6d162a578e73e059 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Duval <jerome.duval@gmail.com>
|
||||
Date: Thu, 10 Apr 2014 16:03:33 +0000
|
||||
Subject: initial Haiku patch
|
||||
|
||||
|
||||
diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
|
||||
index d768dc5..21e3fd5 100644
|
||||
--- a/Lib/distutils/command/install.py
|
||||
+++ b/Lib/distutils/command/install.py
|
||||
@@ -43,6 +43,27 @@ INSTALL_SCHEMES = {
|
||||
'data' : '$base',
|
||||
},
|
||||
'nt': WINDOWS_SCHEME,
|
||||
+ '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',
|
||||
+ },
|
||||
}
|
||||
|
||||
# user site schemes
|
||||
@@ -64,6 +85,14 @@ if HAS_USER_SITE:
|
||||
'data' : '$userbase',
|
||||
}
|
||||
|
||||
+ INSTALL_SCHEMES['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
|
||||
# installed, be sure to add an entry to every installation scheme above,
|
||||
# and to SCHEME_KEYS here.
|
||||
@@ -406,10 +435,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:
|
||||
@@ -425,7 +460,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")
|
||||
|
||||
def finalize_other(self):
|
||||
"""Finalizes options for non-posix platforms"""
|
||||
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
|
||||
index a1452fe..07e2225 100644
|
||||
--- a/Lib/distutils/sysconfig.py
|
||||
+++ b/Lib/distutils/sysconfig.py
|
||||
@@ -111,7 +111,8 @@ def get_python_inc(plat_specific=0, prefix=None):
|
||||
incdir = os.path.join(get_config_var('srcdir'), 'Include')
|
||||
return os.path.normpath(incdir)
|
||||
python_dir = 'python' + get_python_version() + build_flags
|
||||
- return os.path.join(prefix, "include", python_dir)
|
||||
+ inc_dir = "include" if sys.platform != "haiku1" else "develop/headers"
|
||||
+ return os.path.join(prefix, inc_dir, python_dir)
|
||||
elif os.name == "nt":
|
||||
return os.path.join(prefix, "include")
|
||||
else:
|
||||
@@ -141,12 +142,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:
|
||||
return os.path.join(prefix, "Lib")
|
||||
diff --git a/Lib/plat-haiku1/regen b/Lib/plat-haiku1/regen
|
||||
new file mode 100644
|
||||
index 0000000..4372ee2
|
||||
--- /dev/null
|
||||
+++ b/Lib/plat-haiku1/regen
|
||||
@@ -0,0 +1,4 @@
|
||||
+#! /bin/sh
|
||||
+HEADERS=/boot/develop/headers
|
||||
+set -v
|
||||
+eval $PYTHON_FOR_BUILD ../../Tools/scripts/h2py.py -i "'(u_long)'" $HEADERS/posix/netinet/in.h
|
||||
diff --git a/Lib/site.py b/Lib/site.py
|
||||
index ad5d136..c00666c 100644
|
||||
--- a/Lib/site.py
|
||||
+++ b/Lib/site.py
|
||||
@@ -303,7 +303,14 @@ def getsitepackages(prefixes=None):
|
||||
continue
|
||||
seen.add(prefix)
|
||||
|
||||
- if os.sep == '/':
|
||||
+ if sys.platform.startswith('haiku'):
|
||||
+ sitepackages.append(os.path.join(prefix, "non-packaged", "lib",
|
||||
+ "python" + sys.version[:3],
|
||||
+ "site-packages"))
|
||||
+ sitepackages.append(os.path.join(prefix, "lib",
|
||||
+ "python" + sys.version[:3],
|
||||
+ "vendor-packages"))
|
||||
+ elif os.sep == '/':
|
||||
sitepackages.append(os.path.join(prefix, "lib",
|
||||
"python" + sys.version[:3],
|
||||
"site-packages"))
|
||||
diff --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py
|
||||
index c37482e..96277a8 100644
|
||||
--- a/Lib/test/test_fileio.py
|
||||
+++ b/Lib/test/test_fileio.py
|
||||
@@ -295,6 +295,7 @@ class OtherFileTests(unittest.TestCase):
|
||||
self.assertEqual(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.assertEqual(f.seekable(), False)
|
||||
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||
index 76aef28..4b06354 100644
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -119,7 +119,7 @@ BINDIR= @bindir@
|
||||
LIBDIR= @libdir@
|
||||
MANDIR= @mandir@
|
||||
INCLUDEDIR= @includedir@
|
||||
-CONFINCLUDEDIR= $(exec_prefix)/include
|
||||
+CONFINCLUDEDIR= $(INCLUDEDIR)
|
||||
SCRIPTDIR= $(prefix)/lib
|
||||
ABIFLAGS= @ABIFLAGS@
|
||||
|
||||
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
|
||||
index 628dec2..5e6bb3f 100644
|
||||
--- a/Modules/posixmodule.c
|
||||
+++ b/Modules/posixmodule.c
|
||||
@@ -12023,7 +12023,7 @@ all_ins(PyObject *m)
|
||||
if (PyModule_AddIntMacro(m, SCHED_FIFO)) return -1;
|
||||
if (PyModule_AddIntMacro(m, SCHED_RR)) return -1;
|
||||
#ifdef SCHED_SPORADIC
|
||||
- if (PyModule_AddIntMacro(m, SCHED_SPORADIC) return -1;
|
||||
+ if (PyModule_AddIntMacro(m, SCHED_SPORADIC)) return -1;
|
||||
#endif
|
||||
#ifdef SCHED_BATCH
|
||||
if (PyModule_AddIntMacro(m, SCHED_BATCH)) return -1;
|
||||
diff --git a/Modules/resource.c b/Modules/resource.c
|
||||
index 3a1cf09..bb56e30 100644
|
||||
--- a/Modules/resource.c
|
||||
+++ b/Modules/resource.c
|
||||
@@ -83,6 +83,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, 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));
|
||||
@@ -97,7 +98,22 @@ resource_getrusage(PyObject *self, PyObject *args)
|
||||
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));
|
||||
-
|
||||
+#else
|
||||
+ PyStructSequence_SET_ITEM(result, 2, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 3, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 4, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 5, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 6, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 7, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 8, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 9, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 10, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 11, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 12, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 13, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 14, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 15, PyLong_FromLong(0));
|
||||
+#endif
|
||||
if (PyErr_Occurred()) {
|
||||
Py_DECREF(result);
|
||||
return NULL;
|
||||
@@ -334,19 +350,19 @@ PyInit_resource(void)
|
||||
(PyObject*) &StructRUsageType);
|
||||
|
||||
/* insert constants */
|
||||
-#ifdef RLIMIT_CPU
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_CPU)
|
||||
PyModule_AddIntMacro(m, RLIMIT_CPU);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_FSIZE
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_FSIZE)
|
||||
PyModule_AddIntMacro(m, RLIMIT_FSIZE);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_DATA
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_DATA)
|
||||
PyModule_AddIntMacro(m, RLIMIT_DATA);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_STACK
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_STACK)
|
||||
PyModule_AddIntMacro(m, RLIMIT_STACK);
|
||||
#endif
|
||||
|
||||
@@ -358,31 +374,31 @@ PyInit_resource(void)
|
||||
PyModule_AddIntMacro(m, RLIMIT_NOFILE);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_OFILE
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_OFILE)
|
||||
PyModule_AddIntMacro(m, RLIMIT_OFILE);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_VMEM
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_VMEM)
|
||||
PyModule_AddIntMacro(m, RLIMIT_VMEM);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_AS
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_AS)
|
||||
PyModule_AddIntMacro(m, RLIMIT_AS);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_RSS
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_RSS)
|
||||
PyModule_AddIntMacro(m, RLIMIT_RSS);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_NPROC
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_NPROC)
|
||||
PyModule_AddIntMacro(m, RLIMIT_NPROC);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_MEMLOCK
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_MEMLOCK)
|
||||
PyModule_AddIntMacro(m, RLIMIT_MEMLOCK);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_SBSIZE
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_SBSIZE)
|
||||
PyModule_AddIntMacro(m, RLIMIT_SBSIZE);
|
||||
#endif
|
||||
|
||||
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
|
||||
index cb44d05..4023304 100644
|
||||
--- a/Modules/socketmodule.c
|
||||
+++ b/Modules/socketmodule.c
|
||||
@@ -6094,7 +6094,9 @@ PyInit__socket(void)
|
||||
PyModule_AddIntMacro(m, SOCK_DGRAM);
|
||||
/* We have incomplete socket support. */
|
||||
PyModule_AddIntMacro(m, SOCK_RAW);
|
||||
+#ifndef __HAIKU__
|
||||
PyModule_AddIntMacro(m, SOCK_SEQPACKET);
|
||||
+#endif
|
||||
#if defined(SOCK_RDM)
|
||||
PyModule_AddIntMacro(m, SOCK_RDM);
|
||||
#endif
|
||||
diff --git a/Modules/socketmodule.h b/Modules/socketmodule.h
|
||||
index b83f9af..47e4064 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 68ea1b5..1f5c3d0 100644
|
||||
--- a/Modules/spwdmodule.c
|
||||
+++ b/Modules/spwdmodule.c
|
||||
@@ -81,7 +81,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 4b4f979..48a2897 100644
|
||||
--- a/Python/bltinmodule.c
|
||||
+++ b/Python/bltinmodule.c
|
||||
@@ -24,7 +24,7 @@
|
||||
#ifdef HAVE_MBCS
|
||||
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;
|
||||
#else
|
||||
diff --git a/Tools/scripts/h2py.py b/Tools/scripts/h2py.py
|
||||
index 4f871d9..343e5ba 100755
|
||||
--- a/Tools/scripts/h2py.py
|
||||
+++ b/Tools/scripts/h2py.py
|
||||
@@ -49,12 +49,15 @@ except KeyError:
|
||||
try:
|
||||
searchdirs=os.environ['INCLUDE'].split(';')
|
||||
except KeyError:
|
||||
- searchdirs=['/usr/include']
|
||||
- try:
|
||||
- searchdirs.insert(0, os.path.join('/usr/include',
|
||||
+ if sys.platform.find("beos") == 0 or sys.platform.find("haiku1") == 0:
|
||||
+ searchdirs=os.environ['BEINCLUDES'].split(';')
|
||||
+ else:
|
||||
+ searchdirs=['/usr/include']
|
||||
+ try:
|
||||
+ searchdirs.insert(0, os.path.join('/usr/include',
|
||||
os.environ['MULTIARCH']))
|
||||
- except KeyError:
|
||||
- pass
|
||||
+ except KeyError:
|
||||
+ pass
|
||||
|
||||
def main():
|
||||
global filedict
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index a0d0afa..aad64a8 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -956,7 +956,7 @@ if test $enable_shared = "yes"; then
|
||||
PY3LIBRARY=libpython3.so
|
||||
fi
|
||||
;;
|
||||
- Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*)
|
||||
+ Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*|Haiku*)
|
||||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
BLDLIBRARY='-L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
||||
@@ -964,6 +964,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
|
||||
if test "$with_pydebug" != yes
|
||||
@@ -1055,6 +1058,7 @@ AC_PROG_MKDIR_P
|
||||
AC_SUBST(LN)
|
||||
if test -z "$LN" ; then
|
||||
case $ac_sys_system in
|
||||
+ Haiku*) LN="ln -s";;
|
||||
CYGWIN*) LN="ln -s";;
|
||||
*) LN=ln;;
|
||||
esac
|
||||
@@ -2055,7 +2059,7 @@ then
|
||||
BLDSHARED="$LDSHARED"
|
||||
fi
|
||||
;;
|
||||
- Linux*|GNU*|QNX*)
|
||||
+ Linux*|GNU*|QNX*|Haiku*)
|
||||
LDSHARED='$(CC) -shared'
|
||||
LDCXXSHARED='$(CXX) -shared';;
|
||||
BSD/OS*/4*)
|
||||
@@ -2124,7 +2128,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*)
|
||||
@@ -2155,7 +2159,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/*)
|
||||
LINKFORSHARED="$extra_undefs -framework CoreFoundation"
|
||||
@@ -2329,6 +2333,12 @@ esac
|
||||
AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
|
||||
AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
|
||||
|
||||
+# Haiku's sockets are stashed in libnetwork.
|
||||
+case "$ac_sys_system" in
|
||||
+ Haiku*)
|
||||
+ AC_CHECK_LIB(network, socket, [LIBS="-lnetwork $LIBS"], [], $LIBS);;
|
||||
+esac
|
||||
+
|
||||
AC_MSG_CHECKING(for --with-libs)
|
||||
AC_ARG_WITH(libs,
|
||||
AS_HELP_STRING([--with-libs='lib1 ...'], [link against additional libs]),
|
||||
@@ -3663,6 +3673,7 @@ fi],
|
||||
AC_SUBST(LIBM)
|
||||
case $ac_sys_system in
|
||||
Darwin) ;;
|
||||
+Haiku) ;;
|
||||
*) LIBM=-lm
|
||||
esac
|
||||
AC_MSG_CHECKING(for --with-libm=STRING)
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 2779658..b1ff43a 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -523,6 +523,12 @@ class PyBuildExt(build_ext):
|
||||
config_h_vars = sysconfig.parse_config_h(file)
|
||||
|
||||
srcdir = sysconfig.get_config_var('srcdir')
|
||||
+
|
||||
+ # Haiku-specific library locations
|
||||
+ if host_platform == 'haiku1':
|
||||
+ inc_dirs += ['/boot/develop/headers/posix',
|
||||
+ '/boot/system/develop/headers']
|
||||
+ lib_dirs += ['/boot/system/develop/lib']
|
||||
|
||||
# OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb)
|
||||
if host_platform in ['osf1', 'unixware7', 'openunix8']:
|
||||
@@ -550,9 +556,9 @@ class PyBuildExt(build_ext):
|
||||
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 and Haiku, which don't need libm.a at all
|
||||
math_libs = ['m']
|
||||
- if host_platform == 'darwin':
|
||||
+ if host_platform in ['darwin','haiku1']:
|
||||
math_libs = []
|
||||
|
||||
# XXX Omitted modules: gl, pure, dl, SGI-specific modules
|
||||
@@ -762,15 +768,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/'
|
||||
] )
|
||||
@@ -778,8 +791,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:
|
||||
@@ -819,8 +832,8 @@ class PyBuildExt(build_ext):
|
||||
# of hash functions from the OpenSSL library.
|
||||
exts.append( Extension('_hashlib', ['_hashopenssl.c'],
|
||||
depends = ['hashlib.h'],
|
||||
- include_dirs = ssl_incs,
|
||||
- library_dirs = ssl_libs,
|
||||
+ include_dirs = ssl_incs_to_add,
|
||||
+ library_dirs = ssl_libs_to_add,
|
||||
libraries = ['ssl', 'crypto']) )
|
||||
else:
|
||||
print("warning: openssl 0x%08x is too old for _hashlib" %
|
||||
@@ -1254,7 +1267,7 @@ class PyBuildExt(build_ext):
|
||||
exts.append( Extension('resource', ['resource.c']) )
|
||||
|
||||
# Sun yellow pages. Some systems have the functions in libc.
|
||||
- if (host_platform not in ['cygwin', 'qnx6'] and
|
||||
+ if (host_platform not in ['cygwin', '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
|
||||
|
||||
@@ -1,540 +0,0 @@
|
||||
From ac95fb3752253b437b5bf7a2ca20e6e2527a73b6 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Duval <jerome.duval@gmail.com>
|
||||
Date: Thu, 10 Apr 2014 16:03:33 +0000
|
||||
Subject: initial Haiku patch
|
||||
|
||||
|
||||
diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
|
||||
index 67db007..dc1c894 100644
|
||||
--- a/Lib/distutils/command/install.py
|
||||
+++ b/Lib/distutils/command/install.py
|
||||
@@ -43,6 +43,27 @@ INSTALL_SCHEMES = {
|
||||
'data' : '$base',
|
||||
},
|
||||
'nt': WINDOWS_SCHEME,
|
||||
+ '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',
|
||||
+ },
|
||||
}
|
||||
|
||||
# user site schemes
|
||||
@@ -64,6 +85,14 @@ if HAS_USER_SITE:
|
||||
'data' : '$userbase',
|
||||
}
|
||||
|
||||
+ INSTALL_SCHEMES['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
|
||||
# installed, be sure to add an entry to every installation scheme above,
|
||||
# and to SCHEME_KEYS here.
|
||||
@@ -406,10 +435,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:
|
||||
@@ -425,7 +460,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")
|
||||
|
||||
def finalize_other(self):
|
||||
"""Finalizes options for non-posix platforms"""
|
||||
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
|
||||
index 573724d..10dd008 100644
|
||||
--- a/Lib/distutils/sysconfig.py
|
||||
+++ b/Lib/distutils/sysconfig.py
|
||||
@@ -102,7 +102,8 @@ def get_python_inc(plat_specific=0, prefix=None):
|
||||
incdir = os.path.join(get_config_var('srcdir'), 'Include')
|
||||
return os.path.normpath(incdir)
|
||||
python_dir = 'python' + get_python_version() + build_flags
|
||||
- return os.path.join(prefix, "include", python_dir)
|
||||
+ inc_dir = "include" if sys.platform != "haiku1" else "develop/headers"
|
||||
+ return os.path.join(prefix, inc_dir, python_dir)
|
||||
elif os.name == "nt":
|
||||
return os.path.join(prefix, "include")
|
||||
else:
|
||||
@@ -132,12 +133,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:
|
||||
return os.path.join(prefix, "Lib")
|
||||
diff --git a/Lib/plat-haiku1/regen b/Lib/plat-haiku1/regen
|
||||
new file mode 100644
|
||||
index 0000000..4372ee2
|
||||
--- /dev/null
|
||||
+++ b/Lib/plat-haiku1/regen
|
||||
@@ -0,0 +1,4 @@
|
||||
+#! /bin/sh
|
||||
+HEADERS=/boot/develop/headers
|
||||
+set -v
|
||||
+eval $PYTHON_FOR_BUILD ../../Tools/scripts/h2py.py -i "'(u_long)'" $HEADERS/posix/netinet/in.h
|
||||
diff --git a/Lib/site.py b/Lib/site.py
|
||||
index 3f78ef5..e2616e8 100644
|
||||
--- a/Lib/site.py
|
||||
+++ b/Lib/site.py
|
||||
@@ -302,7 +302,14 @@ def getsitepackages(prefixes=None):
|
||||
continue
|
||||
seen.add(prefix)
|
||||
|
||||
- if os.sep == '/':
|
||||
+ if sys.platform.startswith('haiku'):
|
||||
+ sitepackages.append(os.path.join(prefix, "non-packaged", "lib",
|
||||
+ "python" + sys.version[:3],
|
||||
+ "site-packages"))
|
||||
+ sitepackages.append(os.path.join(prefix, "lib",
|
||||
+ "python" + sys.version[:3],
|
||||
+ "vendor-packages"))
|
||||
+ elif os.sep == '/':
|
||||
sitepackages.append(os.path.join(prefix, "lib",
|
||||
"python" + sys.version[:3],
|
||||
"site-packages"))
|
||||
diff --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py
|
||||
index 12f2f11..097ec1b 100644
|
||||
--- a/Lib/test/test_fileio.py
|
||||
+++ b/Lib/test/test_fileio.py
|
||||
@@ -377,6 +377,7 @@ class OtherFileTests:
|
||||
self.assertEqual(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', 'aix')):
|
||||
# Somehow /dev/tty appears seekable on some BSDs
|
||||
self.assertEqual(f.seekable(), False)
|
||||
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||
index a88b7d5..c305955 100644
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -125,7 +125,7 @@ BINDIR= @bindir@
|
||||
LIBDIR= @libdir@
|
||||
MANDIR= @mandir@
|
||||
INCLUDEDIR= @includedir@
|
||||
-CONFINCLUDEDIR= $(exec_prefix)/include
|
||||
+CONFINCLUDEDIR= $(INCLUDEDIR)
|
||||
SCRIPTDIR= $(prefix)/lib
|
||||
ABIFLAGS= @ABIFLAGS@
|
||||
|
||||
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
|
||||
index 3e446a5..fd24794 100644
|
||||
--- a/Modules/posixmodule.c
|
||||
+++ b/Modules/posixmodule.c
|
||||
@@ -12788,7 +12788,7 @@ all_ins(PyObject *m)
|
||||
if (PyModule_AddIntMacro(m, SCHED_RR)) return -1;
|
||||
#endif
|
||||
#ifdef SCHED_SPORADIC
|
||||
- if (PyModule_AddIntMacro(m, SCHED_SPORADIC) return -1;
|
||||
+ if (PyModule_AddIntMacro(m, SCHED_SPORADIC)) return -1;
|
||||
#endif
|
||||
#ifdef SCHED_BATCH
|
||||
if (PyModule_AddIntMacro(m, SCHED_BATCH)) return -1;
|
||||
diff --git a/Modules/resource.c b/Modules/resource.c
|
||||
index 970ee84..c38c716 100644
|
||||
--- a/Modules/resource.c
|
||||
+++ b/Modules/resource.c
|
||||
@@ -83,6 +83,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, 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));
|
||||
@@ -97,7 +98,22 @@ resource_getrusage(PyObject *self, PyObject *args)
|
||||
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));
|
||||
-
|
||||
+#else
|
||||
+ PyStructSequence_SET_ITEM(result, 2, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 3, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 4, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 5, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 6, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 7, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 8, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 9, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 10, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 11, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 12, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 13, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 14, PyLong_FromLong(0));
|
||||
+ PyStructSequence_SET_ITEM(result, 15, PyLong_FromLong(0));
|
||||
+#endif
|
||||
if (PyErr_Occurred()) {
|
||||
Py_DECREF(result);
|
||||
return NULL;
|
||||
@@ -332,19 +348,19 @@ PyInit_resource(void)
|
||||
(PyObject*) &StructRUsageType);
|
||||
|
||||
/* insert constants */
|
||||
-#ifdef RLIMIT_CPU
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_CPU)
|
||||
PyModule_AddIntMacro(m, RLIMIT_CPU);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_FSIZE
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_FSIZE)
|
||||
PyModule_AddIntMacro(m, RLIMIT_FSIZE);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_DATA
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_DATA)
|
||||
PyModule_AddIntMacro(m, RLIMIT_DATA);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_STACK
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_STACK)
|
||||
PyModule_AddIntMacro(m, RLIMIT_STACK);
|
||||
#endif
|
||||
|
||||
@@ -356,31 +372,31 @@ PyInit_resource(void)
|
||||
PyModule_AddIntMacro(m, RLIMIT_NOFILE);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_OFILE
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_OFILE)
|
||||
PyModule_AddIntMacro(m, RLIMIT_OFILE);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_VMEM
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_VMEM)
|
||||
PyModule_AddIntMacro(m, RLIMIT_VMEM);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_AS
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_AS)
|
||||
PyModule_AddIntMacro(m, RLIMIT_AS);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_RSS
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_RSS)
|
||||
PyModule_AddIntMacro(m, RLIMIT_RSS);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_NPROC
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_NPROC)
|
||||
PyModule_AddIntMacro(m, RLIMIT_NPROC);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_MEMLOCK
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_MEMLOCK)
|
||||
PyModule_AddIntMacro(m, RLIMIT_MEMLOCK);
|
||||
#endif
|
||||
|
||||
-#ifdef RLIMIT_SBSIZE
|
||||
+#if !defined(__HAIKU__) && defined(RLIMIT_SBSIZE)
|
||||
PyModule_AddIntMacro(m, RLIMIT_SBSIZE);
|
||||
#endif
|
||||
|
||||
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
|
||||
index af6cc94..8631fca 100644
|
||||
--- a/Modules/socketmodule.c
|
||||
+++ b/Modules/socketmodule.c
|
||||
@@ -6443,7 +6443,9 @@ PyInit__socket(void)
|
||||
PyModule_AddIntMacro(m, SOCK_DGRAM);
|
||||
/* We have incomplete socket support. */
|
||||
PyModule_AddIntMacro(m, SOCK_RAW);
|
||||
+#ifndef __HAIKU__
|
||||
PyModule_AddIntMacro(m, SOCK_SEQPACKET);
|
||||
+#endif
|
||||
#if defined(SOCK_RDM)
|
||||
PyModule_AddIntMacro(m, SOCK_RDM);
|
||||
#endif
|
||||
diff --git a/Modules/socketmodule.h b/Modules/socketmodule.h
|
||||
index 3cce927..6241a7d 100644
|
||||
--- a/Modules/socketmodule.h
|
||||
+++ b/Modules/socketmodule.h
|
||||
@@ -54,6 +54,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 4b9f3cd..76e7d46 100644
|
||||
--- a/Modules/spwdmodule.c
|
||||
+++ b/Modules/spwdmodule.c
|
||||
@@ -87,7 +87,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 9f5db2a..0091e48 100644
|
||||
--- a/Python/bltinmodule.c
|
||||
+++ b/Python/bltinmodule.c
|
||||
@@ -24,7 +24,7 @@
|
||||
#ifdef HAVE_MBCS
|
||||
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;
|
||||
#else
|
||||
diff --git a/Tools/scripts/h2py.py b/Tools/scripts/h2py.py
|
||||
index 0967fc2..e30a59a 100755
|
||||
--- a/Tools/scripts/h2py.py
|
||||
+++ b/Tools/scripts/h2py.py
|
||||
@@ -49,12 +49,15 @@ except KeyError:
|
||||
try:
|
||||
searchdirs=os.environ['INCLUDE'].split(';')
|
||||
except KeyError:
|
||||
- searchdirs=['/usr/include']
|
||||
- try:
|
||||
- searchdirs.insert(0, os.path.join('/usr/include',
|
||||
+ if sys.platform.find("beos") == 0 or sys.platform.find("haiku1") == 0:
|
||||
+ searchdirs=os.environ['BEINCLUDES'].split(';')
|
||||
+ else:
|
||||
+ searchdirs=['/usr/include']
|
||||
+ try:
|
||||
+ searchdirs.insert(0, os.path.join('/usr/include',
|
||||
os.environ['MULTIARCH']))
|
||||
- except KeyError:
|
||||
- pass
|
||||
+ except KeyError:
|
||||
+ pass
|
||||
|
||||
def main():
|
||||
global filedict
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 49d1a37..34a810e 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1129,6 +1129,16 @@ if test $enable_shared = "yes"; then
|
||||
PY3LIBRARY=libpython3.so
|
||||
fi
|
||||
;;
|
||||
+ Haiku*)
|
||||
+ LDLIBRARY='libpython$(LDVERSION).so'
|
||||
+ BLDLIBRARY='-L. -lpython$(LDVERSION)'
|
||||
+ RUNSHARED=LIBRARY_PATH=`pwd`${LIBRARY_PATH:+:${LIBRARY_PATH}}
|
||||
+ INSTSONAME="$LDLIBRARY".$SOVERSION
|
||||
+ if test "$with_pydebug" != yes
|
||||
+ then
|
||||
+ PY3LIBRARY=libpython3.so
|
||||
+ fi
|
||||
+ ;;
|
||||
hp*|HP*)
|
||||
case `uname -m` in
|
||||
ia64)
|
||||
@@ -1205,6 +1215,7 @@ AC_PROG_MKDIR_P
|
||||
AC_SUBST(LN)
|
||||
if test -z "$LN" ; then
|
||||
case $ac_sys_system in
|
||||
+ Haiku*) LN="ln -s";;
|
||||
CYGWIN*) LN="ln -s";;
|
||||
*) LN=ln;;
|
||||
esac
|
||||
@@ -2437,7 +2448,7 @@ then
|
||||
BLDSHARED="$LDSHARED"
|
||||
fi
|
||||
;;
|
||||
- Linux*|GNU*|QNX*)
|
||||
+ Linux*|GNU*|QNX*|Haiku*)
|
||||
LDSHARED='$(CC) -shared'
|
||||
LDCXXSHARED='$(CXX) -shared';;
|
||||
BSD/OS*/4*)
|
||||
@@ -2506,7 +2517,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*)
|
||||
@@ -2537,7 +2548,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/*)
|
||||
LINKFORSHARED="$extra_undefs -framework CoreFoundation"
|
||||
@@ -2719,6 +2730,12 @@ LDFLAGS="-fsanitize=address $LDFLAGS"
|
||||
AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
|
||||
AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
|
||||
|
||||
+# Haiku's sockets are stashed in libnetwork.
|
||||
+case "$ac_sys_system" in
|
||||
+ Haiku*)
|
||||
+ AC_CHECK_LIB(network, socket, [LIBS="-lnetwork $LIBS"], [], $LIBS);;
|
||||
+esac
|
||||
+
|
||||
AC_MSG_CHECKING(for --with-libs)
|
||||
AC_ARG_WITH(libs,
|
||||
AS_HELP_STRING([--with-libs='lib1 ...'], [link against additional libs]),
|
||||
@@ -4066,6 +4083,7 @@ fi],
|
||||
AC_SUBST(LIBM)
|
||||
case $ac_sys_system in
|
||||
Darwin) ;;
|
||||
+Haiku) ;;
|
||||
*) LIBM=-lm
|
||||
esac
|
||||
AC_MSG_CHECKING(for --with-libm=STRING)
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 40f8bf2..be498e3 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -480,8 +480,8 @@ class PyBuildExt(build_ext):
|
||||
os.unlink(tmpfile)
|
||||
|
||||
def detect_math_libs(self):
|
||||
- # Check for MacOS X, which doesn't need libm.a at all
|
||||
- if host_platform == 'darwin':
|
||||
+ # Check for MacOS X and Haiku, which doesn't need libm.a at all
|
||||
+ if host_platform in ['darwin','haiku1']:
|
||||
return []
|
||||
else:
|
||||
return ['m']
|
||||
@@ -563,6 +563,12 @@ class PyBuildExt(build_ext):
|
||||
config_h_vars = sysconfig.parse_config_h(file)
|
||||
|
||||
srcdir = sysconfig.get_config_var('srcdir')
|
||||
+
|
||||
+ # Haiku-specific library locations
|
||||
+ if host_platform == 'haiku1':
|
||||
+ inc_dirs += ['/boot/develop/headers/posix',
|
||||
+ '/boot/system/develop/headers']
|
||||
+ lib_dirs += ['/boot/system/develop/lib']
|
||||
|
||||
# OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb)
|
||||
if host_platform in ['osf1', 'unixware7', 'openunix8']:
|
||||
@@ -811,15 +817,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/'
|
||||
] )
|
||||
@@ -827,8 +840,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:
|
||||
@@ -868,8 +881,8 @@ class PyBuildExt(build_ext):
|
||||
# of hash functions from the OpenSSL library.
|
||||
exts.append( Extension('_hashlib', ['_hashopenssl.c'],
|
||||
depends = ['hashlib.h'],
|
||||
- include_dirs = ssl_incs,
|
||||
- library_dirs = ssl_libs,
|
||||
+ include_dirs = ssl_incs_to_add,
|
||||
+ library_dirs = ssl_libs_to_add,
|
||||
libraries = ['ssl', 'crypto']) )
|
||||
else:
|
||||
print("warning: openssl 0x%08x is too old for _hashlib" %
|
||||
@@ -1303,7 +1316,7 @@ class PyBuildExt(build_ext):
|
||||
exts.append( Extension('resource', ['resource.c']) )
|
||||
|
||||
# Sun yellow pages. Some systems have the functions in libc.
|
||||
- if (host_platform not in ['cygwin', 'qnx6'] and
|
||||
+ if (host_platform not in ['cygwin', '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']
|
||||
--
|
||||
2.10.2
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 86342bd79fd31f85bfb8df30d0b8bf1cc66cbd75 Mon Sep 17 00:00:00 2001
|
||||
From a4cd9d290a0fe86b16dbd55dc5de35390ba2bd0d Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Duval <jerome.duval@gmail.com>
|
||||
Date: Thu, 10 Apr 2014 16:03:33 +0000
|
||||
Subject: initial Haiku patch
|
||||
@@ -86,10 +86,10 @@ index 0258d3d..aaec6e6 100644
|
||||
def finalize_other(self):
|
||||
"""Finalizes options for non-posix platforms"""
|
||||
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
|
||||
index 2bcd1dd..8d8ff39 100644
|
||||
index 83160f8..7e9fec5 100644
|
||||
--- a/Lib/distutils/sysconfig.py
|
||||
+++ b/Lib/distutils/sysconfig.py
|
||||
@@ -99,7 +99,8 @@ def get_python_inc(plat_specific=0, prefix=None):
|
||||
@@ -107,7 +107,8 @@ def get_python_inc(plat_specific=0, prefix=None):
|
||||
incdir = os.path.join(get_config_var('srcdir'), 'Include')
|
||||
return os.path.normpath(incdir)
|
||||
python_dir = 'python' + get_python_version() + build_flags
|
||||
@@ -97,9 +97,9 @@ index 2bcd1dd..8d8ff39 100644
|
||||
+ inc_dir = "include" if sys.platform != "haiku1" else "develop/headers"
|
||||
+ return os.path.join(prefix, inc_dir, python_dir)
|
||||
elif os.name == "nt":
|
||||
return os.path.join(prefix, "include")
|
||||
else:
|
||||
@@ -129,12 +130,20 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
|
||||
if python_build:
|
||||
# Include both the include and PC dir to ensure we can find
|
||||
@@ -142,12 +143,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":
|
||||
@@ -136,7 +136,7 @@ index 0000000..4372ee2
|
||||
+set -v
|
||||
+eval $PYTHON_FOR_BUILD ../../Tools/scripts/h2py.py -i "'(u_long)'" $HEADERS/posix/netinet/in.h
|
||||
diff --git a/Lib/site.py b/Lib/site.py
|
||||
index ffd132b..9876642 100644
|
||||
index ad11463..e39080e 100644
|
||||
--- a/Lib/site.py
|
||||
+++ b/Lib/site.py
|
||||
@@ -258,6 +258,14 @@ def _getuserbase():
|
||||
@@ -215,7 +215,7 @@ index 11180b7..d99f73e 100644
|
||||
def test_mknod_dir_fd(self):
|
||||
# Test using mknodat() to create a FIFO (the only use specified
|
||||
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||
index d912a19..4829a67 100644
|
||||
index 2d2e11f..b1848a2 100644
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -141,7 +141,7 @@ BINDIR= @bindir@
|
||||
@@ -228,10 +228,10 @@ index d912a19..4829a67 100644
|
||||
ABIFLAGS= @ABIFLAGS@
|
||||
|
||||
diff --git a/Modules/resource.c b/Modules/resource.c
|
||||
index 113ad5c..b9de0ab 100644
|
||||
index e59280f..f1aaef9 100644
|
||||
--- a/Modules/resource.c
|
||||
+++ b/Modules/resource.c
|
||||
@@ -102,6 +102,7 @@ resource_getrusage(PyObject *self, PyObject *args)
|
||||
@@ -102,6 +102,7 @@ resource_getrusage_impl(PyObject *module, int who)
|
||||
PyFloat_FromDouble(doubletime(ru.ru_utime)));
|
||||
PyStructSequence_SET_ITEM(result, 1,
|
||||
PyFloat_FromDouble(doubletime(ru.ru_stime)));
|
||||
@@ -239,7 +239,7 @@ index 113ad5c..b9de0ab 100644
|
||||
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));
|
||||
@@ -116,7 +117,22 @@ resource_getrusage(PyObject *self, PyObject *args)
|
||||
@@ -116,7 +117,22 @@ resource_getrusage_impl(PyObject *module, int who)
|
||||
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));
|
||||
@@ -327,10 +327,10 @@ index 113ad5c..b9de0ab 100644
|
||||
#endif
|
||||
|
||||
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
|
||||
index ed31667..e1c163e 100644
|
||||
index 988471e..d1f3bcf 100644
|
||||
--- a/Modules/socketmodule.c
|
||||
+++ b/Modules/socketmodule.c
|
||||
@@ -7122,7 +7122,9 @@ PyInit__socket(void)
|
||||
@@ -7142,7 +7142,9 @@ PyInit__socket(void)
|
||||
/* SOCK_RAW is marked as optional in the POSIX specification */
|
||||
PyModule_AddIntMacro(m, SOCK_RAW);
|
||||
#endif
|
||||
@@ -341,7 +341,7 @@ index ed31667..e1c163e 100644
|
||||
PyModule_AddIntMacro(m, SOCK_RDM);
|
||||
#endif
|
||||
diff --git a/Modules/socketmodule.h b/Modules/socketmodule.h
|
||||
index af7c36a..ca5a873 100644
|
||||
index 0b2edc1..1ee4fdd 100644
|
||||
--- a/Modules/socketmodule.h
|
||||
+++ b/Modules/socketmodule.h
|
||||
@@ -54,6 +54,10 @@ typedef int socklen_t;
|
||||
@@ -381,7 +381,7 @@ index 1601ec0..4c98fe8 100644
|
||||
else
|
||||
PyErr_SetString(PyExc_KeyError, "getspnam(): name not found");
|
||||
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
|
||||
index d7b0bbd..ee9bebc 100644
|
||||
index 6306c3a..847becf 100644
|
||||
--- a/Python/bltinmodule.c
|
||||
+++ b/Python/bltinmodule.c
|
||||
@@ -17,7 +17,7 @@
|
||||
@@ -419,7 +419,7 @@ index 4363c0c..40994b0 100755
|
||||
def main():
|
||||
global filedict
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 3f2459a..62bc0c0 100644
|
||||
index ad0f4d4..80d2649 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1151,6 +1151,16 @@ if test $enable_shared = "yes"; then
|
||||
@@ -474,7 +474,7 @@ index 3f2459a..62bc0c0 100644
|
||||
# -u libsys_s pulls in all symbols in libsys
|
||||
Darwin/*)
|
||||
LINKFORSHARED="$extra_undefs -framework CoreFoundation"
|
||||
@@ -2949,6 +2960,12 @@ LDFLAGS="-fsanitize=address $LDFLAGS"
|
||||
@@ -2949,6 +2960,12 @@ LDFLAGS="-fsanitize=undefined $LDFLAGS"
|
||||
AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
|
||||
AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
|
||||
|
||||
@@ -487,7 +487,7 @@ index 3f2459a..62bc0c0 100644
|
||||
AC_MSG_CHECKING(for --with-libs)
|
||||
AC_ARG_WITH(libs,
|
||||
AS_HELP_STRING([--with-libs='lib1 ...'], [link against additional libs]),
|
||||
@@ -4276,6 +4293,7 @@ fi],
|
||||
@@ -4293,6 +4310,7 @@ AC_CHECK_FUNC(__fpu_control,
|
||||
AC_SUBST(LIBM)
|
||||
case $ac_sys_system in
|
||||
Darwin) ;;
|
||||
@@ -571,15 +571,18 @@ index b4357e3..df227d1 100644
|
||||
return None
|
||||
|
||||
libs = []
|
||||
--
|
||||
2.21.0
|
||||
|
||||
From d9e7a5386b6668d9bf46b1ade6356322ea11fa41 Mon Sep 17 00:00:00 2001
|
||||
|
||||
From b06b387748b4a4f7dfc989a02ab3e9b0dd5ad4b6 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Duval <jerome.duval@gmail.com>
|
||||
Date: Sun, 16 Apr 2017 10:05:42 +0200
|
||||
Subject: fix for negative errnos
|
||||
|
||||
|
||||
diff --git a/Lib/subprocess.py b/Lib/subprocess.py
|
||||
index 290ae44..95ec9d3 100644
|
||||
index 3c1abb7..5e96075 100644
|
||||
--- a/Lib/subprocess.py
|
||||
+++ b/Lib/subprocess.py
|
||||
@@ -1508,6 +1508,8 @@ class Popen(object):
|
||||
@@ -592,7 +595,7 @@ index 290ae44..95ec9d3 100644
|
||||
if child_exec_never_called:
|
||||
err_msg = ""
|
||||
diff --git a/Modules/_posixsubprocess.c b/Modules/_posixsubprocess.c
|
||||
index fe0e554..d2a0d52 100644
|
||||
index 3cf0683..adf3608 100644
|
||||
--- a/Modules/_posixsubprocess.c
|
||||
+++ b/Modules/_posixsubprocess.c
|
||||
@@ -534,6 +534,10 @@ error:
|
||||
@@ -607,17 +610,17 @@ index fe0e554..d2a0d52 100644
|
||||
*--cur = Py_hexdigits[saved_errno % 16];
|
||||
saved_errno /= 16;
|
||||
--
|
||||
2.19.1
|
||||
2.21.0
|
||||
|
||||
|
||||
From f9408c3d0f3242fa21cb06278ded8b684eafd805 Mon Sep 17 00:00:00 2001
|
||||
From 6bb4b749c391d619d74e9f2c741854878b9527dc Mon Sep 17 00:00:00 2001
|
||||
From: Philippe Houdoin <philippe.houdoin@gmail.com>
|
||||
Date: Wed, 24 May 2017 11:09:43 +0000
|
||||
Subject: Implement CTypes's find_library for Haiku
|
||||
|
||||
|
||||
diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py
|
||||
index 339ae8a..d537963 100644
|
||||
index 97973bc..b2e4095 100644
|
||||
--- a/Lib/ctypes/util.py
|
||||
+++ b/Lib/ctypes/util.py
|
||||
@@ -252,6 +252,56 @@ elif os.name == "posix":
|
||||
@@ -691,5 +694,5 @@ index 339ae8a..d537963 100644
|
||||
print(cdll.LoadLibrary("libm.so"))
|
||||
print(cdll.LoadLibrary("libcrypt.so"))
|
||||
--
|
||||
2.19.1
|
||||
2.21.0
|
||||
|
||||
@@ -1,111 +0,0 @@
|
||||
SUMMARY="An interpreted, interactive, object-oriented programming language"
|
||||
DESCRIPTION="
|
||||
Python is a programming language that lets you work more quickly and integrate \
|
||||
your systems more effectively. You can learn to use Python and see almost \
|
||||
immediate gains in productivity and lower maintenance costs.
|
||||
Python runs on Windows, Linux/Unix, Mac OS X, and has been ported to the Java \
|
||||
and .NET virtual machines.
|
||||
Python is free to use, even for commercial products, because of its \
|
||||
OSI-approved open source license.
|
||||
"
|
||||
HOMEPAGE="https://www.python.org"
|
||||
COPYRIGHT="1990-2012, Python Software Foundation"
|
||||
LICENSE="Python"
|
||||
REVISION="2"
|
||||
SOURCE_URI="https://www.python.org/ftp/python/$portVersion/Python-$portVersion.tar.xz"
|
||||
CHECKSUM_SHA256="d7837121dd5652a05fef807c361909d255d173280c4e1a4ded94d73d80a1f978"
|
||||
SOURCE_DIR="Python-$portVersion"
|
||||
PATCHES="python-$portVersion.patchset"
|
||||
|
||||
ARCHITECTURES="x86_gcc2 x86 x86_64"
|
||||
|
||||
GLOBAL_WRITABLE_FILES="
|
||||
non-packaged/lib/python2.7/site-packages directory keep-old
|
||||
"
|
||||
|
||||
PROVIDES="
|
||||
python = $portVersion compat >= 2.7
|
||||
cmd:2to3 = $portVersion compat >= 2.7
|
||||
cmd:idle = $portVersion compat >= 2.7
|
||||
cmd:pydoc = $portVersion compat >= 2.7
|
||||
cmd:python = $portVersion compat >= 2.7
|
||||
cmd:python2 = $portVersion compat >= 2.7
|
||||
cmd:python2.7 = $portVersion compat >= 2.7
|
||||
cmd:python2.7_config = $portVersion compat >= 2.7
|
||||
cmd:python2_config = $portVersion compat >= 2.7
|
||||
cmd:python_config = $portVersion compat >= 2.7
|
||||
cmd:smtpd.py = $portVersion compat >= 2.7
|
||||
devel:libpython2.7 = 1.0
|
||||
lib:libpython2.7 = 1.0
|
||||
"
|
||||
REQUIRES="
|
||||
haiku
|
||||
lib:libbz2
|
||||
lib:libffi
|
||||
lib:libncurses
|
||||
lib:libreadline
|
||||
lib:libsqlite3
|
||||
lib:libssl
|
||||
lib:libz
|
||||
"
|
||||
|
||||
BUILD_REQUIRES="
|
||||
devel:libbz2
|
||||
devel:libffi
|
||||
devel:libncurses
|
||||
devel:libreadline
|
||||
devel:libsqlite3
|
||||
devel:libssl
|
||||
devel:libz
|
||||
"
|
||||
BUILD_PREREQUIRES="
|
||||
haiku_devel
|
||||
cmd:aclocal
|
||||
cmd:autoconf
|
||||
cmd:find
|
||||
cmd:gcc
|
||||
cmd:ld
|
||||
cmd:libtoolize
|
||||
cmd:make
|
||||
cmd:pkg_config
|
||||
"
|
||||
|
||||
BUILD()
|
||||
{
|
||||
cd Modules/_ctypes/libffi
|
||||
libtoolize --force --copy --install
|
||||
cd ../../..
|
||||
|
||||
libtoolize --force --copy --install
|
||||
aclocal
|
||||
autoconf
|
||||
runConfigure ./configure --with-system-ffi \
|
||||
--enable-shared \
|
||||
--enable-unicode=ucs4
|
||||
|
||||
# prevent make from rebuilding stuff that requires python
|
||||
touch Parser/asdl* Python/Python-ast.c Include/Python-ast.h \
|
||||
Python/opcode_targets.h
|
||||
|
||||
make $jobArgs
|
||||
}
|
||||
|
||||
INSTALL()
|
||||
{
|
||||
make install
|
||||
|
||||
prepareInstalledDevelLibs libpython2.7
|
||||
fixPkgconfig
|
||||
|
||||
mkdir -p $prefix/lib/python2.7/vendor-packages
|
||||
echo 'This directory contains packaged python modules.' \
|
||||
>$prefix/lib/python2.7/vendor-packages/README
|
||||
|
||||
mkdir -p $prefix/non-packaged/lib/python2.7
|
||||
mv $prefix/lib/python2.7/site-packages $prefix/non-packaged/lib/python2.7/
|
||||
}
|
||||
|
||||
TEST()
|
||||
{
|
||||
make $jobArgs test
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
SUMMARY="An interpreted, interactive, object-oriented programming language"
|
||||
DESCRIPTION="
|
||||
Python is a programming language that lets you work more quickly and integrate \
|
||||
your systems more effectively. You can learn to use Python and see almost \
|
||||
immediate gains in productivity and lower maintenance costs.
|
||||
Python runs on Windows, Linux/Unix, Mac OS X, and has been ported to the Java \
|
||||
and .NET virtual machines.
|
||||
Python is free to use, even for commercial products, because of its \
|
||||
OSI-approved open source license.
|
||||
"
|
||||
HOMEPAGE="https://www.python.org"
|
||||
COPYRIGHT="1990-2017, Python Software Foundation"
|
||||
LICENSE="Python"
|
||||
REVISION="4"
|
||||
SOURCE_URI="https://www.python.org/ftp/python/$portVersion/Python-$portVersion.tar.xz"
|
||||
CHECKSUM_SHA256="35d543986882f78261f97787fd3e06274bfa6df29fac9b4a94f73930ff98f731"
|
||||
SOURCE_DIR="Python-$portVersion"
|
||||
PATCHES="python-$portVersion.patchset"
|
||||
|
||||
ARCHITECTURES="?x86_gcc2 x86 x86_64"
|
||||
|
||||
GLOBAL_WRITABLE_FILES="
|
||||
non-packaged/lib/python2.7/site-packages directory keep-old
|
||||
"
|
||||
|
||||
PROVIDES="
|
||||
python = $portVersion compat >= 2.7
|
||||
cmd:2to3 = $portVersion compat >= 2.7
|
||||
cmd:idle = $portVersion compat >= 2.7
|
||||
cmd:pydoc = $portVersion compat >= 2.7
|
||||
cmd:python = $portVersion compat >= 2.7
|
||||
cmd:python2 = $portVersion compat >= 2.7
|
||||
cmd:python2.7 = $portVersion compat >= 2.7
|
||||
cmd:python2.7_config = $portVersion compat >= 2.7
|
||||
cmd:python2_config = $portVersion compat >= 2.7
|
||||
cmd:python_config = $portVersion compat >= 2.7
|
||||
cmd:smtpd.py = $portVersion compat >= 2.7
|
||||
devel:libpython2.7 = 1.0
|
||||
lib:libpython2.7 = 1.0
|
||||
"
|
||||
REQUIRES="
|
||||
haiku
|
||||
lib:libbz2
|
||||
lib:libffi
|
||||
lib:libncurses
|
||||
lib:libreadline
|
||||
lib:libsqlite3
|
||||
lib:libssl
|
||||
lib:libz
|
||||
"
|
||||
|
||||
BUILD_REQUIRES="
|
||||
devel:libbz2
|
||||
devel:libffi
|
||||
devel:libncurses
|
||||
devel:libreadline
|
||||
devel:libsqlite3
|
||||
devel:libssl
|
||||
devel:libz
|
||||
"
|
||||
BUILD_PREREQUIRES="
|
||||
haiku_devel
|
||||
cmd:aclocal
|
||||
cmd:autoconf
|
||||
cmd:find
|
||||
cmd:gcc
|
||||
cmd:ld
|
||||
cmd:libtoolize
|
||||
cmd:make
|
||||
cmd:pkg_config
|
||||
"
|
||||
|
||||
BUILD()
|
||||
{
|
||||
cd Modules/_ctypes/libffi
|
||||
libtoolize --force --copy --install
|
||||
cd ../../..
|
||||
|
||||
libtoolize --force --copy --install
|
||||
aclocal
|
||||
autoconf
|
||||
runConfigure ./configure --with-system-ffi \
|
||||
--enable-shared \
|
||||
--enable-unicode=ucs4
|
||||
|
||||
# prevent make from rebuilding stuff that requires python
|
||||
touch Parser/asdl* Python/Python-ast.c Include/Python-ast.h \
|
||||
Python/opcode_targets.h
|
||||
|
||||
make $jobArgs
|
||||
}
|
||||
|
||||
INSTALL()
|
||||
{
|
||||
make install
|
||||
|
||||
prepareInstalledDevelLibs libpython2.7
|
||||
fixPkgconfig
|
||||
|
||||
mkdir -p $prefix/lib/python2.7/vendor-packages
|
||||
echo 'This directory contains packaged python modules.' \
|
||||
>$prefix/lib/python2.7/vendor-packages/README
|
||||
|
||||
mkdir -p $prefix/non-packaged/lib/python2.7
|
||||
mv $prefix/lib/python2.7/site-packages $prefix/non-packaged/lib/python2.7/
|
||||
}
|
||||
|
||||
TEST()
|
||||
{
|
||||
make $jobArgs test
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
SUMMARY="An interpreted, interactive, object-oriented programming language"
|
||||
DESCRIPTION="
|
||||
Python is a programming language that lets you work more quickly and integrate \
|
||||
your systems more effectively. You can learn to use Python and see almost \
|
||||
immediate gains in productivity and lower maintenance costs.
|
||||
Python runs on Windows, Linux/Unix, Mac OS X, and has been ported to the Java \
|
||||
and .NET virtual machines.
|
||||
Python is free to use, even for commercial products, because of its \
|
||||
OSI-approved open source license.
|
||||
"
|
||||
HOMEPAGE="https://www.python.org/"
|
||||
COPYRIGHT="1990-2017 Python Software Foundation"
|
||||
LICENSE="Python"
|
||||
REVISION="2"
|
||||
SOURCE_URI="https://www.python.org/ftp/python/$portVersion/Python-$portVersion.tar.xz"
|
||||
CHECKSUM_SHA256="71ffb26e09e78650e424929b2b457b9c912ac216576e6bd9e7d204ed03296a66"
|
||||
SOURCE_DIR="Python-$portVersion"
|
||||
PATCHES="python-$portVersion.patchset"
|
||||
|
||||
ARCHITECTURES="?x86_gcc2 x86 x86_64"
|
||||
|
||||
GLOBAL_WRITABLE_FILES="
|
||||
non-packaged/lib/python2.7/site-packages directory keep-old
|
||||
"
|
||||
|
||||
PROVIDES="
|
||||
python = $portVersion compat >= 2.7
|
||||
cmd:2to3 = $portVersion compat >= 2.7
|
||||
cmd:idle = $portVersion compat >= 2.7
|
||||
cmd:pydoc = $portVersion compat >= 2.7
|
||||
cmd:python = $portVersion compat >= 2.7
|
||||
cmd:python2 = $portVersion compat >= 2.7
|
||||
cmd:python2.7 = $portVersion compat >= 2.7
|
||||
cmd:python2.7_config = $portVersion compat >= 2.7
|
||||
cmd:python2_config = $portVersion compat >= 2.7
|
||||
cmd:python_config = $portVersion compat >= 2.7
|
||||
cmd:smtpd.py = $portVersion compat >= 2.7
|
||||
devel:libpython2.7 = 1.0
|
||||
lib:libpython2.7 = 1.0
|
||||
"
|
||||
REQUIRES="
|
||||
haiku
|
||||
lib:libbz2
|
||||
lib:libffi
|
||||
lib:libncurses
|
||||
lib:libreadline
|
||||
lib:libsqlite3
|
||||
lib:libssl
|
||||
lib:libz
|
||||
"
|
||||
|
||||
BUILD_REQUIRES="
|
||||
devel:libbz2
|
||||
devel:libffi
|
||||
devel:libncurses
|
||||
devel:libreadline
|
||||
devel:libsqlite3
|
||||
devel:libssl
|
||||
devel:libz
|
||||
"
|
||||
BUILD_PREREQUIRES="
|
||||
haiku_devel
|
||||
cmd:aclocal
|
||||
cmd:autoconf
|
||||
cmd:find
|
||||
cmd:gcc
|
||||
cmd:ld
|
||||
cmd:libtoolize
|
||||
cmd:make
|
||||
cmd:pkg_config
|
||||
"
|
||||
|
||||
BUILD()
|
||||
{
|
||||
cd Modules/_ctypes/libffi
|
||||
libtoolize --force --copy --install
|
||||
cd ../../..
|
||||
|
||||
libtoolize --force --copy --install
|
||||
aclocal
|
||||
autoconf
|
||||
runConfigure ./configure --with-system-ffi \
|
||||
--enable-shared \
|
||||
--enable-unicode=ucs4
|
||||
|
||||
# prevent make from rebuilding stuff that requires python
|
||||
touch Parser/asdl* Python/Python-ast.c Include/Python-ast.h \
|
||||
Python/opcode_targets.h
|
||||
|
||||
make $jobArgs
|
||||
}
|
||||
|
||||
INSTALL()
|
||||
{
|
||||
make install
|
||||
|
||||
prepareInstalledDevelLibs libpython2.7
|
||||
fixPkgconfig
|
||||
|
||||
mkdir -p $prefix/lib/python2.7/vendor-packages
|
||||
echo 'This directory contains packaged python modules.' \
|
||||
>$prefix/lib/python2.7/vendor-packages/README
|
||||
|
||||
mkdir -p $prefix/non-packaged/lib/python2.7
|
||||
mv $prefix/lib/python2.7/site-packages $prefix/non-packaged/lib/python2.7/
|
||||
}
|
||||
|
||||
TEST()
|
||||
{
|
||||
make $jobArgs test
|
||||
}
|
||||
@@ -13,7 +13,7 @@ COPYRIGHT="1990-2018 Python Software Foundation"
|
||||
LICENSE="Python"
|
||||
REVISION="1"
|
||||
SOURCE_URI="https://www.python.org/ftp/python/$portVersion/Python-$portVersion.tar.xz"
|
||||
CHECKSUM_SHA256="22d9b1ac5b26135ad2b8c2901a9413537e08749a753356ee913c84dbd2df5574"
|
||||
CHECKSUM_SHA256="f222ef602647eecb6853681156d32de4450a2c39f4de93bd5b20235f2e660ed7"
|
||||
SOURCE_DIR="Python-$portVersion"
|
||||
PATCHES="python-$portVersion.patchset"
|
||||
|
||||
@@ -13,7 +13,7 @@ LICENSE="Python"
|
||||
COPYRIGHT="1990-2018 Python Software Foundation"
|
||||
REVISION="1"
|
||||
SOURCE_URI="https://www.python.org/ftp/python/$portVersion/Python-$portVersion.tar.xz"
|
||||
CHECKSUM_SHA256="d83fe8ce51b1bb48bbcf0550fd265b9a75cdfdfa93f916f9e700aef8444bf1bb"
|
||||
CHECKSUM_SHA256="da60b54064d4cfcd9c26576f6df2690e62085123826cff2e667e72a91952d318"
|
||||
SOURCE_DIR="Python-$portVersion"
|
||||
PATCHES="python3-$portVersion.patchset"
|
||||
if [ "$secondaryArchSuffix" = _x86 ] ; then
|
||||
@@ -1,129 +0,0 @@
|
||||
SUMMARY="An interpreted, interactive, object-oriented programming language"
|
||||
DESCRIPTION="
|
||||
Python is a programming language that lets you work more quickly and integrate \
|
||||
your systems more effectively. You can learn to use Python and see almost \
|
||||
immediate gains in productivity and lower maintenance costs.
|
||||
Python runs on Windows, Linux/Unix, Mac OS X, and has been ported to the Java \
|
||||
and .NET virtual machines.
|
||||
Python is free to use, even for commercial products, because of its \
|
||||
OSI-approved open source license.
|
||||
"
|
||||
HOMEPAGE="https://www.python.org"
|
||||
LICENSE="Python"
|
||||
COPYRIGHT="1990-2017, Python Software Foundation"
|
||||
REVISION="2"
|
||||
SOURCE_URI="https://www.python.org/ftp/python/$portVersion/Python-$portVersion.tar.xz"
|
||||
CHECKSUM_SHA256="eefe2ad6575855423ab630f5b51a8ef6e5556f774584c06beab4926f930ddbb0"
|
||||
SOURCE_DIR="Python-$portVersion"
|
||||
PATCHES="python3-$portVersion.patchset"
|
||||
|
||||
ARCHITECTURES="!x86_gcc2 ?x86 ?x86_64"
|
||||
SECONDARY_ARCHITECTURES="!x86"
|
||||
|
||||
|
||||
# On x86_gcc2 we don't want to install the commands in bin/<arch>/, but in bin/.
|
||||
commandSuffix=$secondaryArchSuffix
|
||||
commandBinDir=$binDir
|
||||
if [ "$targetArchitecture" = x86_gcc2 ]; then
|
||||
commandSuffix=
|
||||
commandBinDir=$prefix/bin
|
||||
fi
|
||||
|
||||
PROVIDES="
|
||||
python35$secondaryArchSuffix = $portVersion compat >= 3.5
|
||||
cmd:2to3_3.5 = $portVersion compat >= 3.5
|
||||
cmd:idle3.5 = $portVersion compat >= 3.5
|
||||
cmd:pydoc3.5 = $portVersion compat >= 3.5
|
||||
cmd:python3.5 = $portVersion compat >= 3.5
|
||||
cmd:python3.5_config = $portVersion compat >= 3.5
|
||||
cmd:python3.5m = $portVersion compat >= 3.5
|
||||
cmd:python3.5m_config = $portVersion compat >= 3.5
|
||||
cmd:pyvenv_3.5 = $portVersion compat >= 3.5
|
||||
devel:libpython3.5m$secondaryArchSuffix = 1.0
|
||||
lib:libpython3.5m$secondaryArchSuffix = 1.0
|
||||
"
|
||||
REQUIRES="
|
||||
haiku$secondaryArchSuffix
|
||||
cmd:file
|
||||
lib:libbz2$secondaryArchSuffix
|
||||
lib:libexpat$secondaryArchSuffix
|
||||
lib:libncurses$secondaryArchSuffix
|
||||
lib:libssl$secondaryArchSuffix
|
||||
lib:libreadline$secondaryArchSuffix
|
||||
lib:libsqlite3$secondaryArchSuffix
|
||||
lib:libz$secondaryArchSuffix
|
||||
"
|
||||
BUILD_REQUIRES="
|
||||
devel:libbz2$secondaryArchSuffix
|
||||
devel:libexpat$secondaryArchSuffix
|
||||
devel:libncurses$secondaryArchSuffix
|
||||
devel:libssl$secondaryArchSuffix
|
||||
devel:libreadline$secondaryArchSuffix
|
||||
devel:libsqlite3$secondaryArchSuffix
|
||||
devel:libz$secondaryArchSuffix
|
||||
"
|
||||
BUILD_PREREQUIRES="
|
||||
haiku${secondaryArchSuffix}_devel
|
||||
cmd:aclocal
|
||||
cmd:autoconf
|
||||
cmd:find
|
||||
cmd:gcc$secondaryArchSuffix
|
||||
cmd:ld$secondaryArchSuffix
|
||||
cmd:libtoolize
|
||||
cmd:pkg_config$secondaryArchSuffix
|
||||
cmd:make
|
||||
cmd:python
|
||||
"
|
||||
|
||||
GLOBAL_WRITABLE_FILES="
|
||||
non-packaged/lib/python3.5/site-packages directory keep-old
|
||||
"
|
||||
|
||||
BUILD()
|
||||
{
|
||||
rm -Rf Modules/zlib Modules/expat
|
||||
|
||||
cd Modules/_ctypes/libffi
|
||||
libtoolize --force --copy --install
|
||||
cd ../../..
|
||||
|
||||
libtoolize --force --copy --install
|
||||
aclocal
|
||||
autoconf
|
||||
runConfigure --omit-dirs binDir ./configure \
|
||||
--enable-shared --without-ensurepip \
|
||||
--with-system-expat --bindir=$commandBinDir
|
||||
|
||||
# prevent make from rebuilding stuff that requires python
|
||||
touch Parser/asdl* Python/Python-ast.c Include/Python-ast.h
|
||||
|
||||
rm -f python
|
||||
|
||||
make $jobArgs
|
||||
}
|
||||
|
||||
INSTALL()
|
||||
{
|
||||
make altinstall maninstall
|
||||
|
||||
rm $libDir/libpython3.so $manDir/man1/python3.1
|
||||
|
||||
prepareInstalledDevelLibs libpython3.5m
|
||||
fixPkgconfig
|
||||
|
||||
mkdir -p $prefix/lib/python3.5/vendor-packages
|
||||
echo 'This directory contains packaged python modules.' \
|
||||
>$prefix/lib/python3.5/vendor-packages/README
|
||||
|
||||
mkdir -p $prefix/non-packaged/lib/python3.5
|
||||
mv $prefix/lib/python3.5/site-packages $prefix/non-packaged/lib/python3.5/
|
||||
}
|
||||
|
||||
TEST()
|
||||
{
|
||||
cd Lib/test
|
||||
rm -f test_asynchat.py # this one stalls, so skip it for now
|
||||
rm -f test_multiprocessing.py # this one stalls, so skip it for now
|
||||
|
||||
python3.5 regrtest.py
|
||||
}
|
||||
Reference in New Issue
Block a user