diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2011-05-30 09:57:19 +0200 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2011-08-04 10:28:32 -0400 |
commit | 5e05962686b436b0fd7297fa07e2bd857967144e (patch) | |
tree | e4dacda6ded460f6c3fd6af7694f559287c807eb /src/external | |
parent | 6d7450e996e7c699aebf12422cc7080a0782b9ae (diff) | |
download | sssd-5e05962686b436b0fd7297fa07e2bd857967144e.tar.gz sssd-5e05962686b436b0fd7297fa07e2bd857967144e.tar.xz sssd-5e05962686b436b0fd7297fa07e2bd857967144e.zip |
Provide python bindings for the HBAC evaluator library
Fixes for python HBAC bindings
These changes were proposed during a review:
* Change the signature of str_concat_sequence() to const char *
* use a getsetter for HbacRule.enabled to allow string true/false and
integer 1/0 in addition to bool
* fix a minor memory leak (HbacRequest.rule_name)
* remove overzealous discard consts
Fix python HBAC bindings for python <= 2.4
Several parts of the HBAC python bindings did not work with old Python
versions, such as the one shipped in RHEL5.
The changes include:
* a compatibility wrapper around python set object
* PyModule_AddIntMacro compat macro
* Py_ssize_t compat definition
* Do not use PyUnicode_FromFormat
* several function prototypes and structures used to have "char
arguments where they have "const char *" in recent versions.
This caused compilation warnings this patch mitigates by using
the discard_const hack on python 2.4
Remove dead code from python HBAC bindings
https://fedorahosted.org/sssd/ticket/935
Handle allocation error in python HBAC bindings
https://fedorahosted.org/sssd/ticket/934
HBAC rule validation Python bindings
https://fedorahosted.org/sssd/ticket/943
Diffstat (limited to 'src/external')
-rw-r--r-- | src/external/python.m4 | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/external/python.m4 b/src/external/python.m4 index db5986385..00487a746 100644 --- a/src/external/python.m4 +++ b/src/external/python.m4 @@ -56,3 +56,23 @@ AC_DEFUN([AM_CHECK_PYTHON_HEADERS], ]) +dnl Checks for a couple of functions we use that may not be defined +dnl in some older python versions used e.g. on RHEL5 +AC_DEFUN([AM_CHECK_PYTHON_COMPAT], +[AC_REQUIRE([AM_CHECK_PYTHON_HEADERS]) + save_CPPFLAGS="$CPPFLAGS" + save_LIBS="$LIBS" + CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES" + LIBS="$LIBS $PYTHON_LIBS" + + AC_CHECK_TYPE(Py_ssize_t, + [ AC_DEFINE_UNQUOTED(HAVE_PY_SSIZE_T, 1, [Native Py_ssize_t type]) ], + [], + [[#include <Python.h>]]) + + AC_CHECK_FUNCS([PySet_New PySet_Add PyErr_NewExceptionWithDoc]) + AC_CHECK_DECLS([PySet_Check, PyModule_AddIntMacro, PyUnicode_FromString], [], [], [[#include <Python.h>]]) + + CPPFLAGS="$save_CPPFLAGS" + LIBS="$save_LIBS" +]) |