python3 port for policy module
authorNoel Power <noel.power@suse.com>
Mon, 5 Feb 2018 11:04:53 +0000 (11:04 +0000)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 5 Apr 2018 06:59:08 +0000 (08:59 +0200)
Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
source4/lib/policy/pypolicy.c
source4/lib/policy/wscript_build

index 8a9aa47f1fdfa62071587fd37f42c25b3a9c818b..dd44c0fcf16115c23f71986ceed7e05f5f4549ee 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <Python.h>
 #include "includes.h"
+#include "python/py3compat.h"
 #include "policy.h"
 #include "libcli/util/pyerrors.h"
 
@@ -51,7 +52,7 @@ static PyObject *py_get_gpo_flags(PyObject *self, PyObject *args)
 
        py_ret = PyList_New(0);
        for (i = 0; ret[i]; i++) {
-               PyObject *item = PyString_FromString(ret[i]);
+               PyObject *item = PyStr_FromString(ret[i]);
                if (item == NULL) {
                        talloc_free(mem_ctx);
                        Py_DECREF(py_ret);
@@ -93,7 +94,7 @@ static PyObject *py_get_gplink_options(PyObject *self, PyObject *args)
 
        py_ret = PyList_New(0);
        for (i = 0; ret[i]; i++) {
-               PyObject *item = PyString_FromString(ret[i]);
+               PyObject *item = PyStr_FromString(ret[i]);
                if (item == NULL) {
                        talloc_free(mem_ctx);
                        Py_DECREF(py_ret);
@@ -131,13 +132,21 @@ static PyMethodDef py_policy_methods[] = {
        { NULL }
 };
 
-void initpolicy(void)
+static struct PyModuleDef moduledef = {
+    PyModuleDef_HEAD_INIT,
+    .m_name = "policy",
+    .m_doc = "(Group) Policy manipulation",
+    .m_size = -1,
+    .m_methods = py_policy_methods,
+};
+
+MODULE_INIT_FUNC(policy)
 {
-       PyObject *m;
+       PyObject *m = NULL;
 
-       m = Py_InitModule3("policy", py_policy_methods, "(Group) Policy manipulation");
+       m = PyModule_Create(&moduledef);
        if (!m)
-               return;
+               return m;
 
        PyModule_AddObject(m, "GPO_FLAG_USER_DISABLE",
                                           PyInt_FromLong(GPO_FLAG_USER_DISABLE));
@@ -147,4 +156,5 @@ void initpolicy(void)
                                           PyInt_FromLong(GPLINK_OPT_DISABLE ));
        PyModule_AddObject(m, "GPLINK_OPT_ENFORCE ",
                                           PyInt_FromLong(GPLINK_OPT_ENFORCE ));
+       return m;
 }
index f7c59090b846c45d4051cc4315c82b6aa626d25c..0d23bcb205e1807bb8657786ed62a4a84ce546c5 100644 (file)
@@ -10,8 +10,9 @@ bld.SAMBA_LIBRARY('samba-policy',
        enabled=bld.PYTHON_BUILD_IS_ENABLED()
        )
 
-bld.SAMBA_PYTHON('py_policy',
-       source='pypolicy.c',
-       public_deps='samba-policy pytalloc-util',
-       realname='samba/policy.so'
-       )
+for env in bld.gen_python_environments():
+    bld.SAMBA_PYTHON('py_policy',
+           source='pypolicy.c',
+           public_deps='samba-policy pytalloc-util',
+           realname='samba/policy.so'
+           )