From ba5d6e6d706ebf07640ee24d701255cbb4803525 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 8 Jan 2009 12:20:20 +0100 Subject: [PATCH] Avoid using a utility header for Python replacements included in Samba, since this will not be shipped with talloc/tdb/tevent/etc. --- lib/tdb/pytdb.c | 6 ++++- lib/tevent/pytevent.c | 7 +++++- lib/util/python_util.h | 31 ------------------------ libcli/nbt/pynbt.c | 6 ++++- pidl/lib/Parse/Pidl/Samba4/Python.pm | 6 ++++- source4/auth/credentials/pycredentials.c | 6 ++++- source4/lib/com/pycom.c | 6 ++++- source4/lib/ldb/pyldb.c | 6 ++++- source4/lib/messaging/pymessaging.c | 6 ++++- source4/lib/registry/pyregistry.c | 6 ++++- source4/librpc/ndr/py_security.c | 6 ++++- source4/librpc/rpc/pyrpc.c | 6 ++++- source4/param/pyparam.c | 6 ++++- source4/scripting/python/pyglue.c | 6 ++++- source4/web_server/wsgi.c | 6 ++++- 15 files changed, 71 insertions(+), 45 deletions(-) delete mode 100644 lib/util/python_util.h diff --git a/lib/tdb/pytdb.c b/lib/tdb/pytdb.c index f2e094423ce..15a8d8a3e21 100644 --- a/lib/tdb/pytdb.c +++ b/lib/tdb/pytdb.c @@ -24,7 +24,11 @@ License along with this library; if not, see . */ -#include "../lib/util/python_util.h" +#include +#ifndef Py_RETURN_NONE +#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None +#endif + #ifdef HAVE_FSTAT #undef HAVE_FSTAT #endif diff --git a/lib/tevent/pytevent.c b/lib/tevent/pytevent.c index 756d013ede8..5d10554531e 100644 --- a/lib/tevent/pytevent.c +++ b/lib/tevent/pytevent.c @@ -16,7 +16,12 @@ along with this program. If not, see . */ -#include "../lib/util/python_util.h" +#include + +#ifndef Py_RETURN_NONE +#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None +#endif + #include #include #include diff --git a/lib/util/python_util.h b/lib/util/python_util.h deleted file mode 100644 index 24033a48e7b..00000000000 --- a/lib/util/python_util.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - Unix SMB/CIFS implementation. - Samba Python utility functions - Copyright (C) Tim Prouty 2009 - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -#ifndef _PYTHON_UTIL_H_ -#define _PYTHON_UTIL_H_ - -#include - -#if PY_VERSION_HEX < 0x02040000 -#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None -#define Py_RETURN_TRUE return Py_INCREF(Py_True), Py_True -#define Py_RETURN_FALSE return Py_INCREF(Py_False), Py_False -#endif - -#endif /* _PYTHON_UTIL_H_ */ diff --git a/libcli/nbt/pynbt.c b/libcli/nbt/pynbt.c index 99eff94bda3..63ee9bb01ff 100644 --- a/libcli/nbt/pynbt.c +++ b/libcli/nbt/pynbt.c @@ -18,12 +18,16 @@ */ #include "includes.h" -#include "../lib/util/python_util.h" +#include #include "libcli/util/pyerrors.h" #include "scripting/python/modules.h" #include "../libcli/nbt/libnbt.h" #include "lib/events/events.h" +#ifndef Py_RETURN_NONE +#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None +#endif + PyAPI_DATA(PyTypeObject) nbt_node_Type; typedef struct { diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm b/pidl/lib/Parse/Pidl/Samba4/Python.pm index dd93605527b..6d25fcd24fc 100644 --- a/pidl/lib/Parse/Pidl/Samba4/Python.pm +++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm @@ -1121,13 +1121,17 @@ sub Parse($$$$$) $self->pidl_hdr(" /* Python wrapper functions auto-generated by pidl */ #include \"includes.h\" -#include \"../lib/util/python_util.h\" +#include #include \"librpc/rpc/dcerpc.h\" #include \"lib/talloc/pytalloc.h\" #include \"librpc/rpc/pyrpc.h\" #include \"$hdr\" #include \"$ndr_hdr\" +#ifndef Py_RETURN_NONE +#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None +#endif + "); foreach my $x (@$ndr) { diff --git a/source4/auth/credentials/pycredentials.c b/source4/auth/credentials/pycredentials.c index 6821170853f..6fcab80ce66 100644 --- a/source4/auth/credentials/pycredentials.c +++ b/source4/auth/credentials/pycredentials.c @@ -17,7 +17,7 @@ */ #include "includes.h" -#include "../lib/util/python_util.h" +#include #include "pycredentials.h" #include "param/param.h" #include "lib/cmdline/credentials.h" @@ -25,6 +25,10 @@ #include "libcli/util/pyerrors.h" #include "param/pyparam.h" +#ifndef Py_RETURN_NONE +#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None +#endif + struct cli_credentials *cli_credentials_from_py_object(PyObject *py_obj) { if (py_obj == Py_None) { diff --git a/source4/lib/com/pycom.c b/source4/lib/com/pycom.c index 753b7f8f9da..d5a07580ea1 100644 --- a/source4/lib/com/pycom.c +++ b/source4/lib/com/pycom.c @@ -18,11 +18,15 @@ */ #include "includes.h" -#include "../lib/util/python_util.h" +#include #include "lib/com/com.h" #include "librpc/ndr/libndr.h" #include "libcli/util/pyerrors.h" +#ifndef Py_RETURN_NONE +#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None +#endif + static struct com_context *py_com_ctx = NULL; /* FIXME: evil global */ static PyObject *py_get_class_object(PyObject *self, PyObject *args) diff --git a/source4/lib/ldb/pyldb.c b/source4/lib/ldb/pyldb.c index b7a78e8f531..89ef7aeddf2 100644 --- a/source4/lib/ldb/pyldb.c +++ b/source4/lib/ldb/pyldb.c @@ -26,7 +26,7 @@ */ #include "ldb_includes.h" -#include "../lib/util/python_util.h" +#include #include "pyldb.h" /* There's no Py_ssize_t in 2.4, apparently */ @@ -36,6 +36,10 @@ typedef inquiry lenfunc; typedef intargfunc ssizeargfunc; #endif +#ifndef Py_RETURN_NONE +#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None +#endif + /* Picked out of thin air. To do this properly, we should probably have some part of the * errors in LDB be allocated to bindings ? */ #define LDB_ERR_PYTHON_EXCEPTION 142 diff --git a/source4/lib/messaging/pymessaging.c b/source4/lib/messaging/pymessaging.c index 3fa59bde573..535da4526c8 100644 --- a/source4/lib/messaging/pymessaging.c +++ b/source4/lib/messaging/pymessaging.c @@ -20,7 +20,7 @@ */ #include "includes.h" -#include "../lib/util/python_util.h" +#include #include "scripting/python/modules.h" #include "libcli/util/pyerrors.h" #include "librpc/rpc/pyrpc.h" @@ -30,6 +30,10 @@ #include "cluster/cluster.h" #include "param/param.h" +#ifndef Py_RETURN_NONE +#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None +#endif + PyAPI_DATA(PyTypeObject) messaging_Type; PyAPI_DATA(PyTypeObject) irpc_ClientConnectionType; diff --git a/source4/lib/registry/pyregistry.c b/source4/lib/registry/pyregistry.c index c28fcaa6851..166543b6fdd 100644 --- a/source4/lib/registry/pyregistry.c +++ b/source4/lib/registry/pyregistry.c @@ -18,7 +18,7 @@ */ #include "includes.h" -#include "../lib/util/python_util.h" +#include #include "libcli/util/pyerrors.h" #include "lib/registry/registry.h" #include "scripting/python/modules.h" /* for py_iconv_convenience() */ @@ -26,6 +26,10 @@ #include #include "param/pyparam.h" +#ifndef Py_RETURN_NONE +#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None +#endif + extern struct cli_credentials *cli_credentials_from_py_object(PyObject *py_obj); PyAPI_DATA(PyTypeObject) PyRegistryKey; diff --git a/source4/librpc/ndr/py_security.c b/source4/librpc/ndr/py_security.c index 5311ce18f4e..08542640b99 100644 --- a/source4/librpc/ndr/py_security.c +++ b/source4/librpc/ndr/py_security.c @@ -16,9 +16,13 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "../lib/util/python_util.h" +#include #include "libcli/security/security.h" +#ifndef Py_RETURN_NONE +#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None +#endif + static void PyType_AddMethods(PyTypeObject *type, PyMethodDef *methods) { PyObject *dict; diff --git a/source4/librpc/rpc/pyrpc.c b/source4/librpc/rpc/pyrpc.c index 1f29ad143ef..371e111c674 100644 --- a/source4/librpc/rpc/pyrpc.c +++ b/source4/librpc/rpc/pyrpc.c @@ -18,13 +18,17 @@ */ #include "includes.h" -#include "../lib/util/python_util.h" +#include #include #include "librpc/rpc/pyrpc.h" #include "librpc/rpc/dcerpc.h" #include "lib/events/events.h" #include "param/pyparam.h" +#ifndef Py_RETURN_NONE +#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None +#endif + static PyObject *py_dcerpc_run_function(dcerpc_InterfaceObject *iface, struct PyNdrRpcMethodDef *md, PyObject *args, PyObject *kwargs) { TALLOC_CTX *mem_ctx; diff --git a/source4/param/pyparam.c b/source4/param/pyparam.c index 1eef02ba39e..2d5a584fb27 100644 --- a/source4/param/pyparam.c +++ b/source4/param/pyparam.c @@ -23,7 +23,7 @@ #include "includes.h" #include "param/param.h" #include "param/loadparm.h" -#include "../lib/util/python_util.h" +#include #include "pytalloc.h" /* There's no Py_ssize_t in 2.4, apparently */ @@ -32,6 +32,10 @@ typedef int Py_ssize_t; typedef inquiry lenfunc; #endif +#ifndef Py_RETURN_NONE +#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None +#endif + #define PyLoadparmContext_AsLoadparmContext(obj) py_talloc_get_ptr(obj) PyAPI_DATA(PyTypeObject) PyLoadparmContext; diff --git a/source4/scripting/python/pyglue.c b/source4/scripting/python/pyglue.c index b11b5a5add5..a2c4790611e 100644 --- a/source4/scripting/python/pyglue.c +++ b/source4/scripting/python/pyglue.c @@ -25,13 +25,17 @@ #include "lib/ldb-samba/ldif_handlers.h" #include "librpc/ndr/libndr.h" #include "version.h" -#include "../lib/util/python_util.h" +#include #include "lib/ldb/pyldb.h" #include "libcli/util/pyerrors.h" #include "libcli/security/security.h" #include "auth/pyauth.h" #include "param/pyparam.h" +#ifndef Py_RETURN_NONE +#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None +#endif + /* FIXME: These should be in a header file somewhere, once we finish moving * away from SWIG .. */ extern struct cli_credentials *cli_credentials_from_py_object(PyObject *py_obj); diff --git a/source4/web_server/wsgi.c b/source4/web_server/wsgi.c index 8ec30a476a5..53ba2a2d9b0 100644 --- a/source4/web_server/wsgi.c +++ b/source4/web_server/wsgi.c @@ -25,7 +25,11 @@ #include "../lib/util/dlinklist.h" #include "../lib/util/data_blob.h" #include "lib/tls/tls.h" -#include "../lib/util/python_util.h" +#include + +#ifndef Py_RETURN_NONE +#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None +#endif typedef struct { PyObject_HEAD -- 2.34.1