From b87db86f79943f238e00c3745596c79a69f12872 Mon Sep 17 00:00:00 2001 From: Jason Zaman Date: Fri, 5 Aug 2016 02:33:58 +0800 Subject: [PATCH] sepolicy: C Module init for python3 Signed-off-by: James Carter --- policycoreutils/sepolicy/policy.c | 31 ++++++++++++++++--- policycoreutils/sepolicy/sepolicy/__init__.py | 2 +- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/policycoreutils/sepolicy/policy.c b/policycoreutils/sepolicy/policy.c index b7e3536f..423a926d 100644 --- a/policycoreutils/sepolicy/policy.c +++ b/policycoreutils/sepolicy/policy.c @@ -86,8 +86,31 @@ static PyMethodDef methods[] = { {NULL, NULL, 0, NULL} /* sentinel */ }; -void init_policy(void) { -PyObject *m; -m = Py_InitModule("_policy", methods); -init_info(m); +#if PY_MAJOR_VERSION >= 3 + +static struct PyModuleDef module_def = +{ + PyModuleDef_HEAD_INIT, + "_policy", /* name of module */ + "", /* module documentation, may be NULL */ + -1, /* size of per-interpreter state of the module, or -1 if the module keeps state in global variables. */ + (PyMethodDef*)&methods, +}; + +PyMODINIT_FUNC PyInit__policy(void) +{ + PyObject *m; + m = PyModule_Create(&module_def); + init_info(m); + return m; } + +#else // python 2 + +void init_policy(void) { + PyObject *m; + m = Py_InitModule("_policy", methods); + init_info(m); +} + +#endif diff --git a/policycoreutils/sepolicy/sepolicy/__init__.py b/policycoreutils/sepolicy/sepolicy/__init__.py index 693c6fe6..7804b5cc 100644 --- a/policycoreutils/sepolicy/sepolicy/__init__.py +++ b/policycoreutils/sepolicy/sepolicy/__init__.py @@ -3,7 +3,7 @@ # Author: Dan Walsh # Author: Ryan Hallisey -import _policy +from . import _policy import selinux import glob PROGNAME = "policycoreutils"