samba-users August 2010 archive
Main Archive Page > Month Archives  > samba-users archives
samba-users: [Samba] Difficulty compiling 4.0.0alpha11 on RHEL 5

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

From: Nico Kadel-Garcia <nkadel_at_nospam>
Date: Sun Aug 22 2010 - 16:14:10 GMT
To: samba@lists.samba.org

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;
-- To unsubscribe from this list go to the following URL and read the instructions: https://lists.samba.org/mailman/options/samba