From 5e05962686b436b0fd7297fa07e2bd857967144e Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Mon, 30 May 2011 09:57:19 +0200 Subject: 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 --- Makefile.am | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'Makefile.am') diff --git a/Makefile.am b/Makefile.am index d75300bdb..44c9b7c42 100644 --- a/Makefile.am +++ b/Makefile.am @@ -92,7 +92,8 @@ check_PROGRAMS = \ PYTHON_TESTS = if BUILD_PYTHON_BINDINGS -PYTHON_TESTS += $(srcdir)/src/config/SSSDConfigTest.py +PYTHON_TESTS += $(srcdir)/src/config/SSSDConfigTest.py \ + $(srcdir)/src/tests/pyhbac-test.py endif TESTS = \ @@ -140,7 +141,8 @@ libsss_crypt_la_LIBADD = \ if BUILD_PYTHON_BINDINGS pyexec_LTLIBRARIES = \ - pysss.la + pysss.la \ + pyhbac.la endif dist_noinst_SCRIPTS = \ @@ -149,7 +151,8 @@ dist_noinst_SCRIPTS = \ src/config/ipachangeconf.py \ src/config/SSSDConfig.py \ src/config/SSSDConfigTest.py \ - src/config/sssd_upgrade_config.py + src/config/sssd_upgrade_config.py \ + src/tests/pyhbac-test.py dist_noinst_DATA = \ src/config/testconfigs/sssd-valid.conf \ @@ -308,6 +311,7 @@ dist_noinst_HEADERS = \ src/util/util.h \ src/util/strtonum.h \ src/util/sss_ldap.h \ + src/util/sss_python.h \ src/util/sss_krb5.h \ src/util/refcount.h \ src/util/find_uid.h \ @@ -989,6 +993,19 @@ pysss_la_LIBADD = \ pysss_la_LDFLAGS = \ -avoid-version \ -module + +pyhbac_la_SOURCES = \ + src/python/pyhbac.c \ + src/util/sss_python.c +pyhbac_la_CFLAGS = \ + $(AM_CFLAGS) \ + $(PYTHON_CFLAGS) +pyhbac_la_LIBADD = \ + $(PYTHON_LIBS) \ + libipa_hbac.la +pyhbac_la_LDFLAGS = \ + -avoid-version \ + -module endif ################ -- cgit