mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-17 09:10:08 +02:00
Convert python 2.6.8 recipe to an actual recipe
Some additional patching was required to get things to build (among other things the bz2, ssl, and related modules). Remove superfluous Modules/timemodule.c patch.
This commit is contained in:
@@ -1,6 +1,101 @@
|
||||
diff -urN Python-2.6.8/Lib/plat-haiku1/IN.py Python-2.6.8-haiku/Lib/plat-haiku1/IN.py
|
||||
--- Python-2.6.8/Lib/plat-haiku1/IN.py 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ Python-2.6.8-haiku/Lib/plat-haiku1/IN.py 2010-08-30 04:52:27.223346688 +0000
|
||||
diff -urN orig/Python-2.6.8/configure.in Python-2.6.8/configure.in
|
||||
--- orig/Python-2.6.8/configure.in 2012-04-10 17:32:11.057409536 +0200
|
||||
+++ Python-2.6.8/configure.in 2013-05-03 15:23:53.332922880 +0200
|
||||
@@ -745,7 +745,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}
|
||||
@@ -753,6 +753,9 @@
|
||||
FreeBSD*)
|
||||
SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
|
||||
;;
|
||||
+ Haiku*)
|
||||
+ RUNSHARED=LIBRARY_PATH=`pwd`:${LIBRARY_PATH}
|
||||
+ ;;
|
||||
esac
|
||||
INSTSONAME="$LDLIBRARY".$SOVERSION
|
||||
;;
|
||||
@@ -823,7 +826,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;;
|
||||
@@ -1829,7 +1832,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__`" != "" ]]
|
||||
@@ -1883,7 +1886,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*)
|
||||
@@ -1916,7 +1919,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,
|
||||
@@ -2035,6 +2038,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)
|
||||
@@ -3265,7 +3271,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 orig/Python-2.6.8/Lib/distutils/command/build_ext.py Python-2.6.8/Lib/distutils/command/build_ext.py
|
||||
--- orig/Python-2.6.8/Lib/distutils/command/build_ext.py 2012-04-10 17:32:04.066846720 +0200
|
||||
+++ Python-2.6.8/Lib/distutils/command/build_ext.py 2013-05-03 15:23:53.334233600 +0200
|
||||
@@ -234,9 +234,13 @@
|
||||
|
||||
# for extensions under Linux or Solaris with a shared Python library,
|
||||
# Python's library directory must be appended to library_dirs
|
||||
+ # For Haiku the situation is similar, though more correctly the
|
||||
+ # develop/lib path should be used. Due to the naming scheme used for the
|
||||
+ # python library it works nonetheless.
|
||||
sysconfig.get_config_var('Py_ENABLE_SHARED')
|
||||
if ((sys.platform.startswith('linux') or sys.platform.startswith('gnu')
|
||||
- or sys.platform.startswith('sunos'))
|
||||
+ or sys.platform.startswith('sunos')
|
||||
+ or sys.platform.startswith('haiku'))
|
||||
and sysconfig.get_config_var('Py_ENABLE_SHARED')):
|
||||
if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")):
|
||||
# building third party extensions
|
||||
diff -urN orig/Python-2.6.8/Lib/plat-haiku1/IN.py Python-2.6.8/Lib/plat-haiku1/IN.py
|
||||
--- orig/Python-2.6.8/Lib/plat-haiku1/IN.py 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ Python-2.6.8/Lib/plat-haiku1/IN.py 2013-05-03 15:23:53.336330752 +0200
|
||||
@@ -0,0 +1,327 @@
|
||||
+# Generated by h2py from /boot/develop/headers/be/net/netinet/in.h
|
||||
+
|
||||
@@ -329,9 +424,9 @@ diff -urN Python-2.6.8/Lib/plat-haiku1/IN.py Python-2.6.8-haiku/Lib/plat-haiku1/
|
||||
+def _FDMSKNO(fd): return ((fd) / NFDBITS)
|
||||
+
|
||||
+def _FDBITNO(fd): return ((fd) % NFDBITS)
|
||||
diff -urN Python-2.6.8/Lib/plat-haiku1/regen Python-2.6.8-haiku/Lib/plat-haiku1/regen
|
||||
--- Python-2.6.8/Lib/plat-haiku1/regen 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ Python-2.6.8-haiku/Lib/plat-haiku1/regen 2010-08-30 04:52:27.237502464 +0000
|
||||
diff -urN orig/Python-2.6.8/Lib/plat-haiku1/regen Python-2.6.8/Lib/plat-haiku1/regen
|
||||
--- orig/Python-2.6.8/Lib/plat-haiku1/regen 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ Python-2.6.8/Lib/plat-haiku1/regen 2013-05-03 15:23:53.336855040 +0200
|
||||
@@ -0,0 +1,7 @@
|
||||
+#! /bin/sh
|
||||
+
|
||||
@@ -340,9 +435,44 @@ diff -urN Python-2.6.8/Lib/plat-haiku1/regen Python-2.6.8-haiku/Lib/plat-haiku1/
|
||||
+
|
||||
+set -v
|
||||
+python $H2PY -i '(u_long)' $HEADERS/posix/netinet/in.h
|
||||
diff -urN Python-2.6.8/Modules/resource.c Python-2.6.8-haiku/Modules/resource.c
|
||||
--- Python-2.6.8/Modules/resource.c 2010-05-09 15:15:40.053739520 +0000
|
||||
+++ Python-2.6.8-haiku/Modules/resource.c 2010-08-30 04:52:24.666370048 +0000
|
||||
diff -urN orig/Python-2.6.8/Lib/test/test_fileio.py Python-2.6.8/Lib/test/test_fileio.py
|
||||
--- orig/Python-2.6.8/Lib/test/test_fileio.py 2012-04-10 17:32:07.043515904 +0200
|
||||
+++ Python-2.6.8/Lib/test/test_fileio.py 2013-05-03 15:23:53.338952192 +0200
|
||||
@@ -152,6 +152,7 @@
|
||||
self.assertEquals(f.writable(), True)
|
||||
if sys.platform != "darwin" and \
|
||||
'bsd' not in sys.platform and \
|
||||
+ 'haiku' not in sys.platform and \
|
||||
not sys.platform.startswith('sunos'):
|
||||
# Somehow /dev/tty appears seekable on some BSDs
|
||||
self.assertEquals(f.seekable(), False)
|
||||
diff -urN orig/Python-2.6.8/Makefile.pre.in Python-2.6.8/Makefile.pre.in
|
||||
--- orig/Python-2.6.8/Makefile.pre.in 2012-04-10 17:32:08.047448064 +0200
|
||||
+++ Python-2.6.8/Makefile.pre.in 2013-05-03 15:23:53.340000768 +0200
|
||||
@@ -90,7 +90,7 @@
|
||||
LIBDIR= @libdir@
|
||||
MANDIR= @mandir@
|
||||
INCLUDEDIR= @includedir@
|
||||
-CONFINCLUDEDIR= $(exec_prefix)/include
|
||||
+CONFINCLUDEDIR= $(INCLUDEDIR)
|
||||
SCRIPTDIR= $(prefix)/lib
|
||||
|
||||
# Detailed destination directories
|
||||
diff -urN orig/Python-2.6.8/Modules/bz2module.c Python-2.6.8/Modules/bz2module.c
|
||||
--- orig/Python-2.6.8/Modules/bz2module.c 2012-04-10 17:32:09.031457280 +0200
|
||||
+++ Python-2.6.8/Modules/bz2module.c 2013-05-03 15:28:16.616562688 +0200
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
#include "Python.h"
|
||||
#include <stdio.h>
|
||||
-#include <bzlib.h>
|
||||
+#include <bzip2/bzlib.h>
|
||||
#include "structmember.h"
|
||||
|
||||
#ifdef WITH_THREAD
|
||||
diff -urN orig/Python-2.6.8/Modules/resource.c Python-2.6.8/Modules/resource.c
|
||||
--- orig/Python-2.6.8/Modules/resource.c 2012-04-10 17:32:10.057147392 +0200
|
||||
+++ Python-2.6.8/Modules/resource.c 2013-05-03 15:23:53.340787200 +0200
|
||||
@@ -86,6 +86,7 @@
|
||||
PyFloat_FromDouble(doubletime(ru.ru_utime)));
|
||||
PyStructSequence_SET_ITEM(result, 1,
|
||||
@@ -360,9 +490,9 @@ diff -urN Python-2.6.8/Modules/resource.c Python-2.6.8-haiku/Modules/resource.c
|
||||
if (PyErr_Occurred()) {
|
||||
Py_DECREF(result);
|
||||
return NULL;
|
||||
diff -urN Python-2.6.8/Modules/socketmodule.c Python-2.6.8-haiku/Modules/socketmodule.c
|
||||
--- Python-2.6.8/Modules/socketmodule.c 2010-05-23 15:22:08.054525952 +0000
|
||||
+++ Python-2.6.8-haiku/Modules/socketmodule.c 2010-08-30 04:53:35.429916160 +0000
|
||||
diff -urN orig/Python-2.6.8/Modules/socketmodule.c Python-2.6.8/Modules/socketmodule.c
|
||||
--- orig/Python-2.6.8/Modules/socketmodule.c 2012-04-10 17:32:10.066846720 +0200
|
||||
+++ Python-2.6.8/Modules/socketmodule.c 2013-05-03 15:23:53.342622208 +0200
|
||||
@@ -4661,7 +4661,9 @@
|
||||
#ifndef __BEOS__
|
||||
/* We have incomplete socket support. */
|
||||
@@ -374,9 +504,9 @@ diff -urN Python-2.6.8/Modules/socketmodule.c Python-2.6.8-haiku/Modules/socketm
|
||||
#if defined(SOCK_RDM)
|
||||
PyModule_AddIntConstant(m, "SOCK_RDM", SOCK_RDM);
|
||||
#endif
|
||||
diff -urN Python-2.6.8/Modules/socketmodule.h Python-2.6.8-haiku/Modules/socketmodule.h
|
||||
--- Python-2.6.8/Modules/socketmodule.h 2010-05-09 15:15:40.053739520 +0000
|
||||
+++ Python-2.6.8-haiku/Modules/socketmodule.h 2010-08-30 04:52:24.667942912 +0000
|
||||
diff -urN orig/Python-2.6.8/Modules/socketmodule.h Python-2.6.8/Modules/socketmodule.h
|
||||
--- orig/Python-2.6.8/Modules/socketmodule.h 2012-04-10 17:32:10.006029312 +0200
|
||||
+++ Python-2.6.8/Modules/socketmodule.h 2013-05-03 15:23:53.343146496 +0200
|
||||
@@ -47,6 +47,10 @@
|
||||
# undef AF_NETLINK
|
||||
#endif
|
||||
@@ -388,9 +518,9 @@ diff -urN Python-2.6.8/Modules/socketmodule.h Python-2.6.8-haiku/Modules/socketm
|
||||
#ifdef HAVE_BLUETOOTH_BLUETOOTH_H
|
||||
#include <bluetooth/bluetooth.h>
|
||||
#include <bluetooth/rfcomm.h>
|
||||
diff -urN Python-2.6.8/Modules/spwdmodule.c Python-2.6.8-haiku/Modules/spwdmodule.c
|
||||
--- Python-2.6.8/Modules/spwdmodule.c 2010-05-09 15:15:40.030408704 +0000
|
||||
+++ Python-2.6.8-haiku/Modules/spwdmodule.c 2010-08-30 04:52:24.709623808 +0000
|
||||
diff -urN orig/Python-2.6.8/Modules/spwdmodule.c Python-2.6.8/Modules/spwdmodule.c
|
||||
--- orig/Python-2.6.8/Modules/spwdmodule.c 2012-04-10 17:32:10.033554432 +0200
|
||||
+++ Python-2.6.8/Modules/spwdmodule.c 2013-05-03 15:23:53.343670784 +0200
|
||||
@@ -79,7 +79,9 @@
|
||||
|
||||
SETS(setIndex++, p->sp_namp);
|
||||
@@ -401,35 +531,9 @@ diff -urN Python-2.6.8/Modules/spwdmodule.c Python-2.6.8-haiku/Modules/spwdmodul
|
||||
SETI(setIndex++, p->sp_min);
|
||||
SETI(setIndex++, p->sp_max);
|
||||
SETI(setIndex++, p->sp_warn);
|
||||
diff -urN Python-2.6.8/Modules/timemodule.c Python-2.6.8-haiku/Modules/timemodule.c
|
||||
--- Python-2.6.8/Modules/timemodule.c 2010-05-09 15:15:40.015204352 +0000
|
||||
+++ Python-2.6.8-haiku/Modules/timemodule.c 2010-08-30 04:52:24.721944576 +0000
|
||||
@@ -972,11 +972,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.8/Parser/asdl_c.py Python-2.6.8-haiku/Parser/asdl_c.py
|
||||
--- Python-2.6.8/Parser/asdl_c.py 2009-12-13 00:59:01.059768832 +0000
|
||||
+++ Python-2.6.8-haiku/Parser/asdl_c.py 2010-08-30 04:52:27.169607168 +0000
|
||||
@@ -1,4 +1,4 @@
|
||||
-#! /usr/bin/env python
|
||||
+#! /bin/env python
|
||||
"""Generate C code from an ASDL description."""
|
||||
|
||||
# TO DO
|
||||
diff -urN Python-2.6.8/Python/bltinmodule.c Python-2.6.8-haiku/Python/bltinmodule.c
|
||||
--- Python-2.6.8/Python/bltinmodule.c 2010-05-09 15:15:40.065011712 +0000
|
||||
+++ Python-2.6.8-haiku/Python/bltinmodule.c 2010-08-30 04:52:27.186646528 +0000
|
||||
diff -urN orig/Python-2.6.8/Python/bltinmodule.c Python-2.6.8/Python/bltinmodule.c
|
||||
--- orig/Python-2.6.8/Python/bltinmodule.c 2012-04-10 17:32:11.047710208 +0200
|
||||
+++ Python-2.6.8/Python/bltinmodule.c 2013-05-03 15:23:53.344981504 +0200
|
||||
@@ -18,7 +18,7 @@
|
||||
*/
|
||||
#if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T)
|
||||
@@ -439,9 +543,89 @@ diff -urN Python-2.6.8/Python/bltinmodule.c Python-2.6.8-haiku/Python/bltinmodul
|
||||
const char *Py_FileSystemDefaultEncoding = "utf-8";
|
||||
#else
|
||||
const char *Py_FileSystemDefaultEncoding = NULL; /* use default */
|
||||
diff -urN Python-2.6.8/Tools/scripts/h2py.py Python-2.6.8-haiku/Tools/scripts/h2py.py
|
||||
--- Python-2.6.8/Tools/scripts/h2py.py 2004-08-09 17:27:55.066584576 +0000
|
||||
+++ Python-2.6.8-haiku/Tools/scripts/h2py.py 2010-08-30 04:52:27.188219392 +0000
|
||||
diff -urN orig/Python-2.6.8/setup.py Python-2.6.8/setup.py
|
||||
--- orig/Python-2.6.8/setup.py 2012-04-10 17:32:11.057147392 +0200
|
||||
+++ Python-2.6.8/setup.py 2013-05-03 15:23:53.346816512 +0200
|
||||
@@ -428,6 +428,10 @@
|
||||
inc_dirs += ['/system/include', '/atheos/autolnk/include']
|
||||
inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep)
|
||||
|
||||
+ if platform == 'haiku1':
|
||||
+ inc_dirs += ['/boot/common/non-packaged/develop/headers', '/boot/common/develop/headers', '/boot/system/develop/headers/posix', '/boot/system/develop/headers/3rdparty']
|
||||
+ lib_dirs += ['/boot/common/non-packaged/develop/lib', '/boot/common/develop/lib', '/boot/system/develop/lib']
|
||||
+
|
||||
# OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb)
|
||||
if platform in ['osf1', 'unixware7', 'openunix8']:
|
||||
lib_dirs += ['/usr/ccs/lib']
|
||||
@@ -451,7 +455,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
|
||||
@@ -694,15 +698,22 @@
|
||||
'/usr/local/ssl/include',
|
||||
'/usr/contrib/ssl/include/'
|
||||
]
|
||||
- ssl_incs = find_file('openssl/ssl.h', inc_dirs,
|
||||
+ ssl_incs = find_file('openssl/ssl.h', [],
|
||||
+ inc_dirs + search_for_ssl_incs_in
|
||||
+ )
|
||||
+ ssl_incs_to_add = find_file('openssl/ssl.h', inc_dirs,
|
||||
search_for_ssl_incs_in
|
||||
)
|
||||
if ssl_incs is not None:
|
||||
krb5_h = find_file('krb5.h', inc_dirs,
|
||||
['/usr/kerberos/include'])
|
||||
if krb5_h:
|
||||
- ssl_incs += krb5_h
|
||||
- ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
|
||||
+ ssl_incs_to_add += krb5_h
|
||||
+ ssl_libs = find_library_file(self.compiler, 'ssl', [],
|
||||
+ lib_dirs + ['/usr/local/ssl/lib',
|
||||
+ '/usr/contrib/ssl/lib/'
|
||||
+ ] )
|
||||
+ ssl_libs_to_add = find_library_file(self.compiler, 'ssl', lib_dirs,
|
||||
['/usr/local/ssl/lib',
|
||||
'/usr/contrib/ssl/lib/'
|
||||
] )
|
||||
@@ -710,8 +721,8 @@
|
||||
if (ssl_incs is not None and
|
||||
ssl_libs is not None):
|
||||
exts.append( Extension('_ssl', ['_ssl.c'],
|
||||
- include_dirs = ssl_incs,
|
||||
- library_dirs = ssl_libs,
|
||||
+ include_dirs = ssl_incs_to_add,
|
||||
+ library_dirs = ssl_libs_to_add,
|
||||
libraries = ['ssl', 'crypto'],
|
||||
depends = ['socketmodule.h']), )
|
||||
else:
|
||||
@@ -746,8 +757,8 @@
|
||||
# The _hashlib module wraps optimized implementations
|
||||
# of hash functions from the OpenSSL library.
|
||||
exts.append( Extension('_hashlib', ['_hashopenssl.c'],
|
||||
- include_dirs = ssl_incs,
|
||||
- library_dirs = ssl_libs,
|
||||
+ include_dirs = ssl_incs_to_add,
|
||||
+ library_dirs = ssl_libs_to_add,
|
||||
libraries = ['ssl', 'crypto']) )
|
||||
# these aren't strictly missing since they are unneeded.
|
||||
#missing.extend(['_sha', '_md5'])
|
||||
@@ -1176,7 +1187,7 @@
|
||||
missing.append('resource')
|
||||
|
||||
# Sun yellow pages. Some systems have the functions in libc.
|
||||
- if (platform not in ['cygwin', 'atheos', 'qnx6'] and
|
||||
+ if (platform not in ['cygwin', 'atheos', 'qnx6', 'haiku1'] and
|
||||
find_file('rpcsvc/yp_prot.h', inc_dirs, []) is not None):
|
||||
if (self.compiler.find_library_file(lib_dirs, 'nsl')):
|
||||
libs = ['nsl']
|
||||
diff -urN orig/Python-2.6.8/Tools/scripts/h2py.py Python-2.6.8/Tools/scripts/h2py.py
|
||||
--- orig/Python-2.6.8/Tools/scripts/h2py.py 2012-04-10 17:32:11.043253760 +0200
|
||||
+++ Python-2.6.8/Tools/scripts/h2py.py 2013-05-03 15:23:53.347340800 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#! /usr/bin/env python
|
||||
+#! /bin/env python
|
||||
@@ -457,112 +641,3 @@ diff -urN Python-2.6.8/Tools/scripts/h2py.py Python-2.6.8-haiku/Tools/scripts/h2
|
||||
searchdirs=os.environ['BEINCLUDES'].split(';')
|
||||
elif sys.platform.startswith("atheos"):
|
||||
searchdirs=os.environ['C_INCLUDE_PATH'].split(':')
|
||||
diff -urN Python-2.6.8/configure.in Python-2.6.8-haiku/configure.in
|
||||
--- Python-2.6.8/configure.in 2010-05-25 02:27:03.064225280 +0000
|
||||
+++ Python-2.6.8-haiku/configure.in 2010-08-30 04:52:27.207880192 +0000
|
||||
@@ -745,7 +745,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}
|
||||
@@ -823,7 +823,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;;
|
||||
@@ -1829,7 +1829,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__`" != "" ]]
|
||||
@@ -1883,7 +1883,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*)
|
||||
@@ -1916,7 +1916,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,
|
||||
@@ -2035,6 +2035,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)
|
||||
@@ -3265,7 +3268,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.8/setup.py Python-2.6.8-haiku/setup.py
|
||||
--- Python-2.6.8/setup.py 2010-07-17 12:31:09.057147392 +0000
|
||||
+++ Python-2.6.8-haiku/setup.py 2010-08-30 04:52:27.220463104 +0000
|
||||
@@ -428,6 +428,10 @@
|
||||
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', '/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']
|
||||
@@ -451,7 +455,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
|
||||
@@ -1176,7 +1180,7 @@
|
||||
missing.append('resource')
|
||||
|
||||
# Sun yellow pages. Some systems have the functions in libc.
|
||||
- if (platform not in ['cygwin', 'atheos', 'qnx6'] and
|
||||
+ if (platform not in ['cygwin', 'atheos', 'qnx6', 'haiku1'] and
|
||||
find_file('rpcsvc/yp_prot.h', inc_dirs, []) is not None):
|
||||
if (self.compiler.find_library_file(lib_dirs, 'nsl')):
|
||||
libs = ['nsl']
|
||||
--- Python-2.6.8/Lib/test/test_fileio.py 2012-07-26 23:04:42.208666624 +0000
|
||||
+++ Python-2.6.8-haiku/Lib/test/test_fileio.py 2012-07-26 23:05:09.382730240 +0000
|
||||
@@ -152,6 +152,7 @@
|
||||
self.assertEquals(f.writable(), True)
|
||||
if sys.platform != "darwin" and \
|
||||
'bsd' not in sys.platform and \
|
||||
+ 'haiku' not in sys.platform and \
|
||||
not sys.platform.startswith('sunos'):
|
||||
# Somehow /dev/tty appears seekable on some BSDs
|
||||
self.assertEquals(f.seekable(), False)
|
||||
|
||||
@@ -1,41 +1,94 @@
|
||||
DESCRIPTION="python - An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="http://www.python.org"
|
||||
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="http://www.python.org"
|
||||
LICENSE="Python"
|
||||
COPYRIGHT="1990-2012, Python Software Foundation"
|
||||
SRC_URI="http://www.python.org/ftp/python/2.6.8/Python-2.6.8.tar.bz2"
|
||||
CHECKSUM_MD5="c6e0420a21d8b23dee8b0195c9b9a125"
|
||||
REVISION="1"
|
||||
STATUS_HAIKU="stable"
|
||||
DEPEND="sys-libs/readline >= 6.0"
|
||||
REVISION="2"
|
||||
ARCHITECTURES="x86_gcc2 ?x86"
|
||||
|
||||
PATCHES="python-2.6.8.patch"
|
||||
|
||||
PROVIDES="
|
||||
python = $portVersion compat >= 2.6
|
||||
cmd:2to3 = $portVersion compat >= 2.6
|
||||
cmd:idle = $portVersion compat >= 2.6
|
||||
cmd:pydoc = $portVersion compat >= 2.6
|
||||
cmd:python = $portVersion compat >= 2.6
|
||||
cmd:python2.6 = $portVersion compat >= 2.6
|
||||
cmd:python2.6_config = $portVersion compat >= 2.6
|
||||
cmd:python_config = $portVersion compat >= 2.6
|
||||
cmd:smtpd.py = $portVersion compat >= 2.6
|
||||
lib:libpython2.6 = 1.0
|
||||
"
|
||||
REQUIRES="
|
||||
haiku_devel >= $haikuVersion
|
||||
bzip2
|
||||
ncurses
|
||||
openssl
|
||||
readline
|
||||
sqlite
|
||||
zlib
|
||||
cmd:nano
|
||||
"
|
||||
BUILD_REQUIRES="
|
||||
$REQUIRES
|
||||
"
|
||||
BUILD_PREREQUIRES="
|
||||
haiku_devel >= $haikuVersion
|
||||
cmd:aclocal
|
||||
cmd:autoconf
|
||||
cmd:find
|
||||
cmd:gcc
|
||||
cmd:ld
|
||||
cmd:libtoolize
|
||||
cmd:make
|
||||
"
|
||||
|
||||
SOURCE_DIR="Python-2.6.8"
|
||||
|
||||
PATCH()
|
||||
{
|
||||
echo "AC_CONFIG_MACRO_DIR([m4])" >> configure.in
|
||||
find . -name '*.py' -exec sed -i -e 's|/usr/bin/env|/bin/env|g' {} \;
|
||||
}
|
||||
|
||||
BUILD()
|
||||
{
|
||||
cd Python-2.6.8/Modules/_ctypes/libffi
|
||||
cd Modules/_ctypes/libffi
|
||||
libtoolize --force --copy --install
|
||||
cd ../../..
|
||||
echo "AC_CONFIG_MACRO_DIR([m4])" >> configure.in
|
||||
|
||||
libtoolize --force --copy --install
|
||||
aclocal
|
||||
autoconf
|
||||
./configure --prefix=`finddir B_COMMON_DIRECTORY` \
|
||||
--enable-shared LDFLAGS=-L/boot/common/lib \
|
||||
--mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \
|
||||
CFLAGS=-I/boot/develop/headers/3rdparty
|
||||
make
|
||||
runConfigure ./configure \
|
||||
--enable-shared \
|
||||
--enable-unicode=ucs4
|
||||
|
||||
# prevent make from rebuilding stuff that requires python
|
||||
touch Parser/asdl* Python/Python-ast.c Include/Python-ast.h
|
||||
|
||||
make $jobArgs
|
||||
}
|
||||
|
||||
INSTALL()
|
||||
{
|
||||
cd Python-2.6.8
|
||||
make install
|
||||
|
||||
prepareInstalledDevelLibs libpython2.6
|
||||
}
|
||||
|
||||
TEST()
|
||||
{
|
||||
cd Python-2.6.8
|
||||
cd Lib/test
|
||||
rm test_asynchat.py # this one stalls, so skip it for now
|
||||
rm test_multiprocessing.py # this one stalls, so skip it for now
|
||||
|
||||
python regrtest.py
|
||||
}
|
||||
|
||||
LICENSE="Python"
|
||||
COPYRIGHT="1990-2012, Python Software Foundation"
|
||||
|
||||
Reference in New Issue
Block a user