[Samba] Difficulty compiling 4.0.0alpha11 on RHEL 5, "Py_ssize_t" undeclared in net.c

Nico Kadel-Garcia nkadel at gmail.com
Sun Aug 22 10:14:10 MDT 2010


Line 59 of samba4.0.0-alpha11/source4/utils/net.c file, at line 59
uses "Py_ssize_t", which was not defined in Python until Python 2.5.
This causes havoc trying to compile it on RHEL 5, which uses Python
2.4 and which I cannot recommend upgrading the Python for in a
production server environment. (I've tried that: it causes dependency
hell in RHEL.)

So, I suggest adding this patch to allow successful compilation with
older RHEL versions. The code is duplicated from wml_wrap.c, and seems
to behave correctly in my casual testing.

--- samba-4.0.0alpha11/source4/utils/net/net.c.oldpython	2010-01-11
00:35:28.000000000 -0500
+++ samba-4.0.0alpha11/source4/utils/net/net.c	2010-08-22
11:44:59.000000000 -0400
@@ -52,6 +52,15 @@
 #include <Python.h>
 #include "scripting/python/modules.h"

+/* Py_ssize_t for old Pythons */
+/* This code is as recommended by: */
+/* http://www.python.org/dev/peps/pep-0353/#conversion-guidelines */
+#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
+typedef int Py_ssize_t;
+# define PY_SSIZE_T_MAX INT_MAX
+# define PY_SSIZE_T_MIN INT_MIN
+#endif
+
 static PyObject *py_tuple_from_argv(int argc, const char *argv[])
 {
 	PyObject *l;


More information about the samba mailing list