Still not building, but getting closer. Fixed a couple cases in Kaliber's 2.6.1 patch where it was looking for Haiku but found haiku1 instead. Removed the bluetooth workaround as haiku has bluetooth now? (Might have to put that back in if it fails)

This commit is contained in:
Scott McCreary
2008-12-16 15:04:24 +00:00
parent e441441d1e
commit aaa731eca2

View File

@@ -0,0 +1,172 @@
diff -urN Python-2.6.1.orig/configure.in Python-2.6.1/configure.in
--- Python-2.6.1.orig/configure.in 2008-12-14 19:09:28.489629527 +0100
+++ Python-2.6.1/configure.in 2008-12-14 19:29:07.185629448 +0100
@@ -704,7 +704,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}
@@ -776,7 +776,7 @@
AC_SUBST(LN)
if test -z "$LN" ; then
case $ac_sys_system in
- BeOS*) LN="ln -s";;
+ BeOS*|Haiku*) LN="ln -s";;
CYGWIN*) LN="ln -s";;
atheos*) LN="ln -s";;
*) LN=ln;;
@@ -1672,7 +1672,7 @@
fi
fi
;;
- Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared';;
+ Linux*|GNU*|QNX*|Haiku*) LDSHARED='$(CC) -shared';;
BSD/OS*/4*) LDSHARED="gcc -shared";;
FreeBSD*)
if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
@@ -1726,7 +1726,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*)
@@ -1759,7 +1759,7 @@
LINKFORSHARED="-Wl,-E -Wl,+s";;
# LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
- Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
+ Linux*|GNU*|Haiku*) LINKFORSHARED="-Xlinker -export-dynamic";;
# -u libsys_s pulls in all symbols in libsys
Darwin/*)
# -u _PyMac_Error is needed to pull in the mac toolbox glue,
@@ -1878,6 +1878,9 @@
BeOS*)
AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS) # BeOS
;;
+Haiku*)
+AC_CHECK_LIB(network, socket, [LIBS="-lnetwork $LIBS"], [], $LIBS) # Haiku
+;;
esac
AC_MSG_CHECKING(for --with-libs)
@@ -3096,7 +3099,7 @@
AC_SUBST(LIBM)
case $ac_sys_system in
Darwin) ;;
-BeOS) ;;
+BeOS|Haiku*) ;;
*) LIBM=-lm
esac
AC_MSG_CHECKING(for --with-libm=STRING)
diff -urN Python-2.6.1.orig/Modules/resource.c Python-2.6.1/Modules/resource.c
--- Python-2.6.1.orig/Modules/resource.c 2008-12-14 19:10:06.821692465 +0100
+++ Python-2.6.1/Modules/resource.c 2008-12-14 19:25:04.289630126 +0100
@@ -86,6 +86,7 @@
PyFloat_FromDouble(doubletime(ru.ru_utime)));
PyStructSequence_SET_ITEM(result, 1,
PyFloat_FromDouble(doubletime(ru.ru_stime)));
+#ifndef __HAIKU__
PyStructSequence_SET_ITEM(result, 2, PyInt_FromLong(ru.ru_maxrss));
PyStructSequence_SET_ITEM(result, 3, PyInt_FromLong(ru.ru_ixrss));
PyStructSequence_SET_ITEM(result, 4, PyInt_FromLong(ru.ru_idrss));
@@ -100,6 +101,7 @@
PyStructSequence_SET_ITEM(result, 13, PyInt_FromLong(ru.ru_nsignals));
PyStructSequence_SET_ITEM(result, 14, PyInt_FromLong(ru.ru_nvcsw));
PyStructSequence_SET_ITEM(result, 15, PyInt_FromLong(ru.ru_nivcsw));
+#endif
if (PyErr_Occurred()) {
Py_DECREF(result);
diff -urN Python-2.6.1.orig/Modules/socketmodule.c Python-2.6.1/Modules/socketmodule.c
--- Python-2.6.1.orig/Modules/socketmodule.c 2008-12-14 19:10:12.709628161 +0100
+++ Python-2.6.1/Modules/socketmodule.c 2008-12-14 22:00:59.341627065 +0100
@@ -4633,7 +4633,9 @@
#ifndef __BEOS__
/* We have incomplete socket support. */
PyModule_AddIntConstant(m, "SOCK_RAW", SOCK_RAW);
+#ifndef __HAIKU__
PyModule_AddIntConstant(m, "SOCK_SEQPACKET", SOCK_SEQPACKET);
+#endif
#if defined(SOCK_RDM)
PyModule_AddIntConstant(m, "SOCK_RDM", SOCK_RDM);
#endif
diff -urN Python-2.6.1.orig/Modules/spwdmodule.c Python-2.6.1/Modules/spwdmodule.c
--- Python-2.6.1.orig/Modules/spwdmodule.c 2008-12-14 19:10:14.053629744 +0100
+++ Python-2.6.1/Modules/spwdmodule.c 2008-12-14 19:25:04.289630126 +0100
@@ -79,7 +79,9 @@
SETS(setIndex++, p->sp_namp);
SETS(setIndex++, p->sp_pwdp);
+#ifndef __HAIKU__
SETI(setIndex++, p->sp_lstchg);
+#endif
SETI(setIndex++, p->sp_min);
SETI(setIndex++, p->sp_max);
SETI(setIndex++, p->sp_warn);
diff -urN Python-2.6.1.orig/Modules/timemodule.c Python-2.6.1/Modules/timemodule.c
--- Python-2.6.1.orig/Modules/timemodule.c 2008-12-14 19:10:04.873637365 +0100
+++ Python-2.6.1/Modules/timemodule.c 2008-12-14 19:25:04.293630616 +0100
@@ -968,11 +968,11 @@
return -1;
}
Py_END_ALLOW_THREADS
-#elif defined(__BEOS__)
+#elif defined(__BEOS__) || defined(__HAIKU__)
/* This sleep *CAN BE* interrupted. */
{
if( secs <= 0.0 ) {
- return;
+ return 0;
}
Py_BEGIN_ALLOW_THREADS
diff -urN Python-2.6.1.orig/setup.py Python-2.6.1/setup.py
--- Python-2.6.1.orig/setup.py 2008-12-14 19:09:28.489629527 +0100
+++ Python-2.6.1/setup.py 2008-12-15 20:54:31.957990468 +0100
@@ -382,6 +382,9 @@
inc_dirs += ['/system/include', '/atheos/autolnk/include']
inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep)
+ if platform == 'haiku1':
+ inc_dirs += ['/boot/develop/headers/posix']
+
# OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb)
if platform in ['osf1', 'unixware7', 'openunix8']:
lib_dirs += ['/usr/ccs/lib']
@@ -405,7 +408,7 @@
# Check for MacOS X, which doesn't need libm.a at all
math_libs = ['m']
- if platform in ['darwin', 'beos', 'mac']:
+ if platform in ['darwin', 'beos', 'haiku1', 'mac']:
math_libs = []
# XXX Omitted modules: gl, pure, dl, SGI-specific modules
@@ -1053,7 +1056,7 @@
missing.append('resource')
# Sun yellow pages. Some systems have the functions in libc.
- if platform not in ['cygwin', 'atheos', 'qnx6']:
+ if platform not in ['cygwin', 'atheos', 'qnx6', 'haiku1']:
if (self.compiler.find_library_file(lib_dirs, 'nsl')):
libs = ['nsl']
else:
diff -urN Python-2.6.1.orig/Tools/scripts/h2py.py Python-2.6.1/Tools/scripts/h2py.py
--- Python-2.6.1.orig/Tools/scripts/h2py.py 2008-12-14 19:09:29.665626727 +0100
+++ Python-2.6.1/Tools/scripts/h2py.py 2008-12-14 19:25:04.313630203 +0100
@@ -50,7 +50,7 @@
searchdirs=os.environ['INCLUDE'].split(';')
except KeyError:
try:
- if sys.platform.find("beos") == 0:
+ if sys.platform.find("beos") == 0 or sys.platform.find("haiku1") == 0:
searchdirs=os.environ['BEINCLUDES'].split(';')
elif sys.platform.startswith("atheos"):
searchdirs=os.environ['C_INCLUDE_PATH'].split(':')