rpms/libselinux/devel .cvsignore, 1.139, 1.140 libselinux-rhat.patch, 1.118, 1.119 libselinux.spec, 1.264, 1.265 sources, 1.141, 1.142

Daniel J Walsh (dwalsh) fedora-extras-commits at redhat.com
Fri May 18 14:52:38 UTC 2007


Author: dwalsh

Update of /cvs/extras/rpms/libselinux/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv29382

Modified Files:
	.cvsignore libselinux-rhat.patch libselinux.spec sources 
Log Message:
* Fri May 4 2007 Dan Walsh <dwalsh at redhat.com> - 2.0.16-1
- Upgrade to upstream
	* Merged additional swig python bindings from Dan Walsh.
	* Merged helpful message when selinuxfs mount fails patch from Dax Kelson.



Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/libselinux/devel/.cvsignore,v
retrieving revision 1.139
retrieving revision 1.140
diff -u -r1.139 -r1.140
--- .cvsignore	24 Apr 2007 14:48:35 -0000	1.139
+++ .cvsignore	18 May 2007 14:52:28 -0000	1.140
@@ -118,3 +118,4 @@
 libselinux-2.0.12.tgz
 libselinux-2.0.13.tgz
 libselinux-2.0.14.tgz
+libselinux-2.0.16.tgz

libselinux-rhat.patch:

Index: libselinux-rhat.patch
===================================================================
RCS file: /cvs/extras/rpms/libselinux/devel/libselinux-rhat.patch,v
retrieving revision 1.118
retrieving revision 1.119
diff -u -r1.118 -r1.119
--- libselinux-rhat.patch	23 Apr 2007 14:38:02 -0000	1.118
+++ libselinux-rhat.patch	18 May 2007 14:52:28 -0000	1.119
@@ -1,1227 +1,40 @@
-diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinux.py libselinux-2.0.13/src/selinux.py
---- nsalibselinux/src/selinux.py	2007-02-22 08:53:23.000000000 -0500
-+++ libselinux-2.0.13/src/selinux.py	2007-04-23 10:26:41.000000000 -0400
-@@ -48,8 +48,19 @@
- del types
- 
- 
-+SELINUX_DEFAULTUSER = _selinux.SELINUX_DEFAULTUSER
-+get_ordered_context_list = _selinux.get_ordered_context_list
-+get_ordered_context_list_with_level = _selinux.get_ordered_context_list_with_level
-+get_default_context = _selinux.get_default_context
-+get_default_context_with_level = _selinux.get_default_context_with_level
-+get_default_context_with_role = _selinux.get_default_context_with_role
-+get_default_context_with_rolelevel = _selinux.get_default_context_with_rolelevel
-+query_user_context = _selinux.query_user_context
-+manual_user_enter_context = _selinux.manual_user_enter_context
- is_selinux_enabled = _selinux.is_selinux_enabled
- is_selinux_mls_enabled = _selinux.is_selinux_mls_enabled
-+freecon = _selinux.freecon
-+freeconary = _selinux.freeconary
- getcon = _selinux.getcon
- setcon = _selinux.setcon
- getpidcon = _selinux.getpidcon
-@@ -88,6 +99,8 @@
- set_matchpathcon_flags = _selinux.set_matchpathcon_flags
- matchpathcon_init = _selinux.matchpathcon_init
- matchpathcon = _selinux.matchpathcon
-+matchpathcon_init_prefix = _selinux.matchpathcon_init_prefix
-+matchpathcon_fini = _selinux.matchpathcon_fini
- matchmediacon = _selinux.matchmediacon
- selinux_getenforcemode = _selinux.selinux_getenforcemode
- selinux_policy_root = _selinux.selinux_policy_root
-@@ -102,6 +115,7 @@
- selinux_homedir_context_path = _selinux.selinux_homedir_context_path
- selinux_media_context_path = _selinux.selinux_media_context_path
- selinux_contexts_path = _selinux.selinux_contexts_path
-+selinux_securetty_types_path = _selinux.selinux_securetty_types_path
- selinux_booleans_path = _selinux.selinux_booleans_path
- selinux_customizable_types_path = _selinux.selinux_customizable_types_path
- selinux_users_path = _selinux.selinux_users_path
-@@ -109,13 +123,16 @@
- selinux_translations_path = _selinux.selinux_translations_path
- selinux_netfilter_context_path = _selinux.selinux_netfilter_context_path
- selinux_path = _selinux.selinux_path
--selinux_check_passwd_access = _selinux.selinux_check_passwd_access
--checkPasswdAccess = _selinux.checkPasswdAccess
-+selinux_check_securetty_context = _selinux.selinux_check_securetty_context
-+set_selinuxmnt = _selinux.set_selinuxmnt
- rpm_execcon = _selinux.rpm_execcon
- is_context_customizable = _selinux.is_context_customizable
- selinux_trans_to_raw_context = _selinux.selinux_trans_to_raw_context
- selinux_raw_to_trans_context = _selinux.selinux_raw_to_trans_context
- selinux_getpolicytype = _selinux.selinux_getpolicytype
- getseuserbyname = _selinux.getseuserbyname
-+selinux_file_context_cmp = _selinux.selinux_file_context_cmp
-+selinux_file_context_verify = _selinux.selinux_file_context_verify
-+selinux_lsetfilecon_default = _selinux.selinux_lsetfilecon_default
- 
- 
-diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinuxswig.i libselinux-2.0.13/src/selinuxswig.i
---- nsalibselinux/src/selinuxswig.i	2007-04-12 16:02:48.000000000 -0400
-+++ libselinux-2.0.13/src/selinuxswig.i	2007-04-23 10:26:21.000000000 -0400
-@@ -21,6 +21,7 @@
- %module selinux
- %{
- 	#include "selinux/selinux.h"
-+	#include "selinux/get_context_list.h"
- %}
- %apply int *OUTPUT { int * };
- %apply int *OUTPUT { size_t * };
-@@ -42,8 +43,12 @@
- 
- %typedef unsigned mode_t;
- 
-+%include "../include/selinux/get_context_list.h"
-+
- extern int is_selinux_enabled(void);
- extern int is_selinux_mls_enabled(void);
-+extern void freecon(security_context_t con);
-+extern void freeconary(security_context_t * con);
- extern int getcon(security_context_t *con);
- extern int setcon(security_context_t con);
- extern int getpidcon(int pid, security_context_t *con);
-@@ -90,6 +95,11 @@
- 			mode_t mode,
- 			security_context_t *con);
- 
-+extern int matchpathcon_init_prefix(const char *path,
-+				    const char *prefix);
-+extern void matchpathcon_fini(void);
-+
-+
- extern int matchmediacon(const char *media,
- 		 security_context_t *con);
- 
-@@ -106,6 +116,7 @@
- extern const char *selinux_homedir_context_path(void);
- extern const char *selinux_media_context_path(void);
- extern const char *selinux_contexts_path(void);
-+extern const char *selinux_securetty_types_path(void);
- extern const char *selinux_booleans_path(void);
- extern const char *selinux_customizable_types_path(void);
- extern const char *selinux_users_path(void);
-@@ -113,11 +124,15 @@
- extern const char *selinux_translations_path(void);
- extern const char *selinux_netfilter_context_path(void);
- extern const char *selinux_path(void);
--extern int selinux_check_passwd_access(access_vector_t requested);
--extern int checkPasswdAccess(access_vector_t requested);
-+#extern int selinux_check_passwd_access(access_vector_t requested);
-+#extern int checkPasswdAccess(access_vector_t requested);
- 
-+extern int selinux_check_securetty_context(security_context_t tty_context);
-+void set_selinuxmnt(char *mnt);
-+
-+#ifdef SWIGpython
- // This tells SWIG to treat char ** as a special case
--%typemap(python,in) char ** {
-+%typemap(in) char ** {
-   /* Check if is a list */
-   if (PyList_Check($input)) {
-     int size = PyList_Size($input);
-@@ -143,6 +158,7 @@
-     return NULL;
-   }
- }
-+#endif
- 
- extern int rpm_execcon(unsigned int verified, 
- 		       const char *filename, 
-@@ -164,3 +180,7 @@
- }
- extern int selinux_getpolicytype(char **enforce);
- extern int getseuserbyname(const char *linuxuser, char **seuser, char **level);
-+
-+int selinux_file_context_cmp(const security_context_t a, const security_context_t b);
-+int selinux_file_context_verify(const char *path, mode_t mode);
-+int selinux_lsetfilecon_default(const char *path);
-diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinuxswig_wrap.c libselinux-2.0.13/src/selinuxswig_wrap.c
---- nsalibselinux/src/selinuxswig_wrap.c	2007-04-12 16:02:48.000000000 -0400
-+++ libselinux-2.0.13/src/selinuxswig_wrap.c	2007-04-23 10:26:41.000000000 -0400
-@@ -2449,11 +2449,11 @@
- /* -------- TYPES TABLE (BEGIN) -------- */
- 
- #define SWIGTYPE_p_SELboolean swig_types[0]
--#define SWIGTYPE_p_access_vector_t swig_types[1]
--#define SWIGTYPE_p_char swig_types[2]
--#define SWIGTYPE_p_int swig_types[3]
--#define SWIGTYPE_p_p_char swig_types[4]
--#define SWIGTYPE_p_p_p_char swig_types[5]
-+#define SWIGTYPE_p_char swig_types[1]
-+#define SWIGTYPE_p_int swig_types[2]
-+#define SWIGTYPE_p_p_char swig_types[3]
-+#define SWIGTYPE_p_p_p_char swig_types[4]
-+#define SWIGTYPE_p_p_security_context_t swig_types[5]
- #define SWIGTYPE_p_security_context_t swig_types[6]
- #define SWIGTYPE_p_unsigned_int swig_types[7]
- static swig_type_info *swig_types[9];
-@@ -2485,6 +2485,99 @@
- 
- 
- 	#include "selinux/selinux.h"
-+	#include "selinux/get_context_list.h"
-+
-+
-+SWIGINTERN swig_type_info*
-+SWIG_pchar_descriptor(void)
-+{
-+  static int init = 0;
-+  static swig_type_info* info = 0;
-+  if (!init) {
-+    info = SWIG_TypeQuery("_p_char");
-+    init = 1;
-+  }
-+  return info;
-+}
-+
-+
-+SWIGINTERNINLINE PyObject *
-+SWIG_FromCharPtrAndSize(const char* carray, size_t size)
-+{
-+  if (carray) {
-+    if (size > INT_MAX) {
-+      swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
-+      return pchar_descriptor ? 
-+	SWIG_NewPointerObj((char *)(carray), pchar_descriptor, 0) : SWIG_Py_Void();
-+    } else {
-+      return PyString_FromStringAndSize(carray, (int)(size));
-+    }
-+  } else {
-+    return SWIG_Py_Void();
-+  }
-+}
-+
-+
-+SWIGINTERNINLINE PyObject * 
-+SWIG_FromCharPtr(const char *cptr)
-+{ 
-+  return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
-+}
-+
-+
-+SWIGINTERN int
-+SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
-+{
-+  if (PyString_Check(obj)) {
-+    char *cstr; Py_ssize_t len;
-+    PyString_AsStringAndSize(obj, &cstr, &len);
-+    if (cptr)  {
-+      if (alloc) {
-+	/* 
-+	   In python the user should not be able to modify the inner
-+	   string representation. To warranty that, if you define
-+	   SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string
-+	   buffer is always returned.
-+
-+	   The default behavior is just to return the pointer value,
-+	   so, be careful.
-+	*/ 
-+#if defined(SWIG_PYTHON_SAFE_CSTRINGS)
-+	if (*alloc != SWIG_OLDOBJ) 
-+#else
-+	if (*alloc == SWIG_NEWOBJ) 
-+#endif
-+	  {
-+	    *cptr = (char *)memcpy((char *)malloc((len + 1)*sizeof(char)), cstr, sizeof(char)*(len + 1));
-+	    *alloc = SWIG_NEWOBJ;
-+	  }
+diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinuxswig.i libselinux-2.0.15/src/selinuxswig.i
+--- nsalibselinux/src/selinuxswig.i	2007-05-18 09:58:34.000000000 -0400
++++ libselinux-2.0.15/src/selinuxswig.i	2007-05-15 15:07:02.000000000 -0400
+@@ -41,6 +40,36 @@
+ 	$1 = (security_context_t)PyString_AsString($input);
+ }
+ 
++%typemap(python,argout) security_context_t ** {
++	int i;
++	PyObject *security_context_string;
++
++	PyObject *list_security_context = PyList_New(0); // Create the list.
++	if (list_security_context) {
++		security_context_t *p_security_context_t = *arg3;
++		for (i=0; i < result; i++) { 
++			security_context_string = PyString_FromString(strdup((char *)p_security_context_t[i]));
++			if (PyList_Append(list_security_context, security_context_string) < 0) {
++				PyErr_SetString(PyExc_MemoryError,"typemap(argout) security_context_t **: Fail to insert item in list.");
++				Py_DECREF(list_security_context);
++				$result = SWIG_From_int(STATUS_ERR);
++				break;
++			}
++		}
++		freeconary(p_security_context_t);
++	}
 +	else {
-+	  *cptr = cstr;
-+	  *alloc = SWIG_OLDOBJ;
++		PyErr_SetString(PyExc_MemoryError,"typemap(argout) security_context_t **: Fail to create list.");
++		$result = SWIG_From_int(STATUS_ERR);
 +	}
-+      } else {
-+	*cptr = PyString_AsString(obj);
-+      }
-+    }
-+    if (psize) *psize = len + 1;
-+    return SWIG_OK;
-+  } else {
-+    swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
-+    if (pchar_descriptor) {
-+      void* vptr = 0;
-+      if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) {
-+	if (cptr) *cptr = (char *) vptr;
-+	if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0;
-+	if (alloc) *alloc = SWIG_OLDOBJ;
-+	return SWIG_OK;
-+      }
-+    }
-+  }
-+  return SWIG_TypeError;
-+}
-+
-+
-+
- 
- 
-   #define SWIG_From_long   PyInt_FromLong 
-@@ -2644,74 +2737,6 @@
- }
- 
- 
--SWIGINTERN swig_type_info*
--SWIG_pchar_descriptor(void)
--{
--  static int init = 0;
--  static swig_type_info* info = 0;
--  if (!init) {
--    info = SWIG_TypeQuery("_p_char");
--    init = 1;
--  }
--  return info;
--}
--
--
--SWIGINTERN int
--SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
--{
--  if (PyString_Check(obj)) {
--    char *cstr; Py_ssize_t len;
--    PyString_AsStringAndSize(obj, &cstr, &len);
--    if (cptr)  {
--      if (alloc) {
--	/* 
--	   In python the user should not be able to modify the inner
--	   string representation. To warranty that, if you define
--	   SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string
--	   buffer is always returned.
--
--	   The default behavior is just to return the pointer value,
--	   so, be careful.
--	*/ 
--#if defined(SWIG_PYTHON_SAFE_CSTRINGS)
--	if (*alloc != SWIG_OLDOBJ) 
--#else
--	if (*alloc == SWIG_NEWOBJ) 
--#endif
--	  {
--	    *cptr = (char *)memcpy((char *)malloc((len + 1)*sizeof(char)), cstr, sizeof(char)*(len + 1));
--	    *alloc = SWIG_NEWOBJ;
--	  }
--	else {
--	  *cptr = cstr;
--	  *alloc = SWIG_OLDOBJ;
--	}
--      } else {
--	*cptr = PyString_AsString(obj);
--      }
--    }
--    if (psize) *psize = len + 1;
--    return SWIG_OK;
--  } else {
--    swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
--    if (pchar_descriptor) {
--      void* vptr = 0;
--      if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) {
--	if (cptr) *cptr = (char *) vptr;
--	if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0;
--	if (alloc) *alloc = SWIG_OLDOBJ;
--	return SWIG_OK;
--      }
--    }
--  }
--  return SWIG_TypeError;
--}
--
--
--
--
--
- SWIGINTERN int
- SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val) 
- {
-@@ -2781,33 +2806,396 @@
-   return res;
- }
- 
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+SWIGINTERN PyObject *_wrap_get_ordered_context_list(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+  PyObject *resultobj = 0;
-+  char *arg1 = (char *) 0 ;
-+  security_context_t arg2 ;
-+  security_context_t **arg3 = (security_context_t **) 0 ;
-+  int result;
-+  int res1 ;
-+  char *buf1 = 0 ;
-+  int alloc1 = 0 ;
-+  void *argp3 = 0 ;
-+  int res3 = 0 ;
-+  PyObject * obj0 = 0 ;
-+  PyObject * obj1 = 0 ;
-+  PyObject * obj2 = 0 ;
-+  
-+  if (!PyArg_ParseTuple(args,(char *)"OOO:get_ordered_context_list",&obj0,&obj1,&obj2)) SWIG_fail;
-+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+  if (!SWIG_IsOK(res1)) {
-+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_ordered_context_list" "', argument " "1"" of type '" "char const *""'");
-+  }
-+  arg1 = (char *)(buf1);
-+  {
-+    arg2 = (security_context_t)PyString_AsString(obj1);
-+  }
-+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_p_security_context_t, 0 |  0 );
-+  if (!SWIG_IsOK(res3)) {
-+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "get_ordered_context_list" "', argument " "3"" of type '" "security_context_t **""'"); 
-+  }
-+  arg3 = (security_context_t **)(argp3);
-+  result = (int)get_ordered_context_list((char const *)arg1,arg2,arg3);
-+  resultobj = SWIG_From_int((int)(result));
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  return resultobj;
-+fail:
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_get_ordered_context_list_with_level(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+  PyObject *resultobj = 0;
-+  char *arg1 = (char *) 0 ;
-+  char *arg2 = (char *) 0 ;
-+  security_context_t arg3 ;
-+  security_context_t **arg4 = (security_context_t **) 0 ;
-+  int result;
-+  int res1 ;
-+  char *buf1 = 0 ;
-+  int alloc1 = 0 ;
-+  int res2 ;
-+  char *buf2 = 0 ;
-+  int alloc2 = 0 ;
-+  void *argp4 = 0 ;
-+  int res4 = 0 ;
-+  PyObject * obj0 = 0 ;
-+  PyObject * obj1 = 0 ;
-+  PyObject * obj2 = 0 ;
-+  PyObject * obj3 = 0 ;
-+  
-+  if (!PyArg_ParseTuple(args,(char *)"OOOO:get_ordered_context_list_with_level",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+  if (!SWIG_IsOK(res1)) {
-+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_ordered_context_list_with_level" "', argument " "1"" of type '" "char const *""'");
-+  }
-+  arg1 = (char *)(buf1);
-+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
-+  if (!SWIG_IsOK(res2)) {
-+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "get_ordered_context_list_with_level" "', argument " "2"" of type '" "char const *""'");
-+  }
-+  arg2 = (char *)(buf2);
-+  {
-+    arg3 = (security_context_t)PyString_AsString(obj2);
-+  }
-+  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_p_security_context_t, 0 |  0 );
-+  if (!SWIG_IsOK(res4)) {
-+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "get_ordered_context_list_with_level" "', argument " "4"" of type '" "security_context_t **""'"); 
-+  }
-+  arg4 = (security_context_t **)(argp4);
-+  result = (int)get_ordered_context_list_with_level((char const *)arg1,(char const *)arg2,arg3,arg4);
-+  resultobj = SWIG_From_int((int)(result));
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+  return resultobj;
-+fail:
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+  return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_get_default_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+  PyObject *resultobj = 0;
-+  char *arg1 = (char *) 0 ;
-+  security_context_t arg2 ;
-+  security_context_t *arg3 = (security_context_t *) 0 ;
-+  int result;
-+  int res1 ;
-+  char *buf1 = 0 ;
-+  int alloc1 = 0 ;
-+  security_context_t temp3 = NULL ;
-+  char *temp30 = NULL ;
-+  PyObject * obj0 = 0 ;
-+  PyObject * obj1 = 0 ;
-+  
-+  {
-+    arg3 = &temp3;
-+  }
-+  if (!PyArg_ParseTuple(args,(char *)"OO:get_default_context",&obj0,&obj1)) SWIG_fail;
-+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+  if (!SWIG_IsOK(res1)) {
-+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_default_context" "', argument " "1"" of type '" "char const *""'");
-+  }
-+  arg1 = (char *)(buf1);
-+  {
-+    arg2 = (security_context_t)PyString_AsString(obj1);
-+  }
-+  result = (int)get_default_context((char const *)arg1,arg2,arg3);
-+  resultobj = SWIG_From_int((int)(result));
-+  {
-+    if (*arg3)
-+    temp30 = *arg3;
-+    else
-+    temp30 = "";
-+    resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp30));
-+  }
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  return resultobj;
-+fail:
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_get_default_context_with_level(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+  PyObject *resultobj = 0;
-+  char *arg1 = (char *) 0 ;
-+  char *arg2 = (char *) 0 ;
-+  security_context_t arg3 ;
-+  security_context_t *arg4 = (security_context_t *) 0 ;
-+  int result;
-+  int res1 ;
-+  char *buf1 = 0 ;
-+  int alloc1 = 0 ;
-+  int res2 ;
-+  char *buf2 = 0 ;
-+  int alloc2 = 0 ;
-+  security_context_t temp4 = NULL ;
-+  char *temp40 = NULL ;
-+  PyObject * obj0 = 0 ;
-+  PyObject * obj1 = 0 ;
-+  PyObject * obj2 = 0 ;
-+  
-+  {
-+    arg4 = &temp4;
-+  }
-+  if (!PyArg_ParseTuple(args,(char *)"OOO:get_default_context_with_level",&obj0,&obj1,&obj2)) SWIG_fail;
-+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+  if (!SWIG_IsOK(res1)) {
-+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_default_context_with_level" "', argument " "1"" of type '" "char const *""'");
-+  }
-+  arg1 = (char *)(buf1);
-+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
-+  if (!SWIG_IsOK(res2)) {
-+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "get_default_context_with_level" "', argument " "2"" of type '" "char const *""'");
-+  }
-+  arg2 = (char *)(buf2);
-+  {
-+    arg3 = (security_context_t)PyString_AsString(obj2);
-+  }
-+  result = (int)get_default_context_with_level((char const *)arg1,(char const *)arg2,arg3,arg4);
-+  resultobj = SWIG_From_int((int)(result));
-+  {
-+    if (*arg4)
-+    temp40 = *arg4;
-+    else
-+    temp40 = "";
-+    resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp40));
-+  }
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+  return resultobj;
-+fail:
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+  return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_get_default_context_with_role(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+  PyObject *resultobj = 0;
-+  char *arg1 = (char *) 0 ;
-+  char *arg2 = (char *) 0 ;
-+  security_context_t arg3 ;
-+  security_context_t *arg4 = (security_context_t *) 0 ;
-+  int result;
-+  int res1 ;
-+  char *buf1 = 0 ;
-+  int alloc1 = 0 ;
-+  int res2 ;
-+  char *buf2 = 0 ;
-+  int alloc2 = 0 ;
-+  security_context_t temp4 = NULL ;
-+  char *temp40 = NULL ;
-+  PyObject * obj0 = 0 ;
-+  PyObject * obj1 = 0 ;
-+  PyObject * obj2 = 0 ;
-+  
-+  {
-+    arg4 = &temp4;
-+  }
-+  if (!PyArg_ParseTuple(args,(char *)"OOO:get_default_context_with_role",&obj0,&obj1,&obj2)) SWIG_fail;
-+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+  if (!SWIG_IsOK(res1)) {
-+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_default_context_with_role" "', argument " "1"" of type '" "char const *""'");
-+  }
-+  arg1 = (char *)(buf1);
-+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
-+  if (!SWIG_IsOK(res2)) {
-+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "get_default_context_with_role" "', argument " "2"" of type '" "char const *""'");
-+  }
-+  arg2 = (char *)(buf2);
-+  {
-+    arg3 = (security_context_t)PyString_AsString(obj2);
-+  }
-+  result = (int)get_default_context_with_role((char const *)arg1,(char const *)arg2,arg3,arg4);
-+  resultobj = SWIG_From_int((int)(result));
-+  {
-+    if (*arg4)
-+    temp40 = *arg4;
-+    else
-+    temp40 = "";
-+    resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp40));
-+  }
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+  return resultobj;
-+fail:
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+  return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_get_default_context_with_rolelevel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+  PyObject *resultobj = 0;
-+  char *arg1 = (char *) 0 ;
-+  char *arg2 = (char *) 0 ;
-+  char *arg3 = (char *) 0 ;
-+  security_context_t arg4 ;
-+  security_context_t *arg5 = (security_context_t *) 0 ;
-+  int result;
-+  int res1 ;
-+  char *buf1 = 0 ;
-+  int alloc1 = 0 ;
-+  int res2 ;
-+  char *buf2 = 0 ;
-+  int alloc2 = 0 ;
-+  int res3 ;
-+  char *buf3 = 0 ;
-+  int alloc3 = 0 ;
-+  security_context_t temp5 = NULL ;
-+  char *temp50 = NULL ;
-+  PyObject * obj0 = 0 ;
-+  PyObject * obj1 = 0 ;
-+  PyObject * obj2 = 0 ;
-+  PyObject * obj3 = 0 ;
-+  
-+  {
-+    arg5 = &temp5;
-+  }
-+  if (!PyArg_ParseTuple(args,(char *)"OOOO:get_default_context_with_rolelevel",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+  if (!SWIG_IsOK(res1)) {
-+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_default_context_with_rolelevel" "', argument " "1"" of type '" "char const *""'");
-+  }
-+  arg1 = (char *)(buf1);
-+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
-+  if (!SWIG_IsOK(res2)) {
-+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "get_default_context_with_rolelevel" "', argument " "2"" of type '" "char const *""'");
-+  }
-+  arg2 = (char *)(buf2);
-+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
-+  if (!SWIG_IsOK(res3)) {
-+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "get_default_context_with_rolelevel" "', argument " "3"" of type '" "char const *""'");
-+  }
-+  arg3 = (char *)(buf3);
-+  {
-+    arg4 = (security_context_t)PyString_AsString(obj3);
-+  }
-+  result = (int)get_default_context_with_rolelevel((char const *)arg1,(char const *)arg2,(char const *)arg3,arg4,arg5);
-+  resultobj = SWIG_From_int((int)(result));
-+  {
-+    if (*arg5)
-+    temp50 = *arg5;
-+    else
-+    temp50 = "";
-+    resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp50));
-+  }
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-+  return resultobj;
-+fail:
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-+  return NULL;
-+}
 +
-+
-+SWIGINTERN PyObject *_wrap_query_user_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+  PyObject *resultobj = 0;
-+  security_context_t *arg1 = (security_context_t *) 0 ;
-+  security_context_t *arg2 = (security_context_t *) 0 ;
-+  int result;
-+  security_context_t temp1 = NULL ;
-+  security_context_t temp2 = NULL ;
-+  char *temp10 = NULL ;
-+  char *temp20 = NULL ;
-+  
-+  {
-+    arg1 = &temp1;
-+  }
-+  {
-+    arg2 = &temp2;
-+  }
-+  if (!PyArg_ParseTuple(args,(char *)":query_user_context")) SWIG_fail;
-+  result = (int)query_user_context(arg1,arg2);
-+  resultobj = SWIG_From_int((int)(result));
-+  {
-+    if (*arg1)
-+    temp10 = *arg1;
-+    else
-+    temp10 = "";
-+    resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp10));
-+  }
-+  {
-+    if (*arg2)
-+    temp20 = *arg2;
-+    else
-+    temp20 = "";
-+    resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp20));
-+  }
-+  return resultobj;
-+fail:
-+  return NULL;
++	%append_output(list_security_context);
 +}
 +
- 
--SWIGINTERNINLINE PyObject *
--SWIG_FromCharPtrAndSize(const char* carray, size_t size)
--{
--  if (carray) {
--    if (size > INT_MAX) {
--      swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
--      return pchar_descriptor ? 
--	SWIG_NewPointerObj((char *)(carray), pchar_descriptor, 0) : SWIG_Py_Void();
--    } else {
--      return PyString_FromStringAndSize(carray, (int)(size));
--    }
--  } else {
--    return SWIG_Py_Void();
-+SWIGINTERN PyObject *_wrap_manual_user_enter_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+  PyObject *resultobj = 0;
-+  char *arg1 = (char *) 0 ;
-+  security_context_t *arg2 = (security_context_t *) 0 ;
-+  int result;
-+  int res1 ;
-+  char *buf1 = 0 ;
-+  int alloc1 = 0 ;
-+  security_context_t temp2 = NULL ;
-+  char *temp20 = NULL ;
-+  PyObject * obj0 = 0 ;
-+  
-+  {
-+    arg2 = &temp2;
-+  }
-+  if (!PyArg_ParseTuple(args,(char *)"O:manual_user_enter_context",&obj0)) SWIG_fail;
-+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+  if (!SWIG_IsOK(res1)) {
-+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "manual_user_enter_context" "', argument " "1"" of type '" "char const *""'");
-+  }
-+  arg1 = (char *)(buf1);
-+  result = (int)manual_user_enter_context((char const *)arg1,arg2);
-+  resultobj = SWIG_From_int((int)(result));
-+  {
-+    if (*arg2)
-+    temp20 = *arg2;
-+    else
-+    temp20 = "";
-+    resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp20));
-   }
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  return resultobj;
-+fail:
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  return NULL;
- }
- 
- 
--SWIGINTERNINLINE PyObject * 
--SWIG_FromCharPtr(const char *cptr)
--{ 
--  return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
--}
--
--#ifdef __cplusplus
--extern "C" {
--#endif
- SWIGINTERN PyObject *_wrap_is_selinux_enabled(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-   PyObject *resultobj = 0;
-   int result;
-@@ -2834,6 +3222,48 @@
- }
- 
- 
-+SWIGINTERN PyObject *_wrap_freecon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+  PyObject *resultobj = 0;
-+  security_context_t arg1 ;
-+  PyObject * obj0 = 0 ;
-+  
-+  if (!PyArg_ParseTuple(args,(char *)"O:freecon",&obj0)) SWIG_fail;
-+  {
-+    arg1 = (security_context_t)PyString_AsString(obj0);
-+  }
-+  freecon(arg1);
-+  resultobj = SWIG_Py_Void();
-+  return resultobj;
-+fail:
-+  return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_freeconary(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+  PyObject *resultobj = 0;
-+  security_context_t *arg1 = (security_context_t *) 0 ;
-+  security_context_t temp1 = NULL ;
-+  char *temp10 = NULL ;
-+  
-+  {
-+    arg1 = &temp1;
-+  }
-+  if (!PyArg_ParseTuple(args,(char *)":freeconary")) SWIG_fail;
-+  freeconary(arg1);
-+  resultobj = SWIG_Py_Void();
-+  {
-+    if (*arg1)
-+    temp10 = *arg1;
-+    else
-+    temp10 = "";
-+    resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp10));
-+  }
-+  return resultobj;
-+fail:
-+  return NULL;
++%typemap(in, numinputs=0) security_context_t **(security_context_t *temp=NULL) {
++	$1 = &temp;
 +}
 +
-+
- SWIGINTERN PyObject *_wrap_getcon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-   PyObject *resultobj = 0;
-   security_context_t *arg1 = (security_context_t *) 0 ;
-@@ -3777,6 +4207,55 @@
- }
- 
- 
-+SWIGINTERN PyObject *_wrap_matchpathcon_init_prefix(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+  PyObject *resultobj = 0;
-+  char *arg1 = (char *) 0 ;
-+  char *arg2 = (char *) 0 ;
-+  int result;
-+  int res1 ;
-+  char *buf1 = 0 ;
-+  int alloc1 = 0 ;
-+  int res2 ;
-+  char *buf2 = 0 ;
-+  int alloc2 = 0 ;
-+  PyObject * obj0 = 0 ;
-+  PyObject * obj1 = 0 ;
-+  
-+  if (!PyArg_ParseTuple(args,(char *)"OO:matchpathcon_init_prefix",&obj0,&obj1)) SWIG_fail;
-+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+  if (!SWIG_IsOK(res1)) {
-+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "matchpathcon_init_prefix" "', argument " "1"" of type '" "char const *""'");
-+  }
-+  arg1 = (char *)(buf1);
-+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
-+  if (!SWIG_IsOK(res2)) {
-+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "matchpathcon_init_prefix" "', argument " "2"" of type '" "char const *""'");
-+  }
-+  arg2 = (char *)(buf2);
-+  result = (int)matchpathcon_init_prefix((char const *)arg1,(char const *)arg2);
-+  resultobj = SWIG_From_int((int)(result));
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+  return resultobj;
-+fail:
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+  return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_matchpathcon_fini(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+  PyObject *resultobj = 0;
-+  
-+  if (!PyArg_ParseTuple(args,(char *)":matchpathcon_fini")) SWIG_fail;
-+  matchpathcon_fini();
-+  resultobj = SWIG_Py_Void();
-+  return resultobj;
-+fail:
-+  return NULL;
-+}
-+
-+
- SWIGINTERN PyObject *_wrap_matchmediacon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-   PyObject *resultobj = 0;
-   char *arg1 = (char *) 0 ;
-@@ -3994,6 +4473,19 @@
- }
- 
- 
-+SWIGINTERN PyObject *_wrap_selinux_securetty_types_path(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+  PyObject *resultobj = 0;
-+  char *result = 0 ;
-+  
-+  if (!PyArg_ParseTuple(args,(char *)":selinux_securetty_types_path")) SWIG_fail;
-+  result = (char *)selinux_securetty_types_path();
-+  resultobj = SWIG_FromCharPtr((const char *)result);
-+  return resultobj;
-+fail:
-+  return NULL;
-+}
-+
-+
- SWIGINTERN PyObject *_wrap_selinux_booleans_path(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-   PyObject *resultobj = 0;
-   char *result = 0 ;
-@@ -4085,27 +4577,17 @@
- }
- 
- 
--SWIGINTERN PyObject *_wrap_selinux_check_passwd_access(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+SWIGINTERN PyObject *_wrap_selinux_check_securetty_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-   PyObject *resultobj = 0;
--  access_vector_t arg1 ;
-+  security_context_t arg1 ;
-   int result;
--  void *argp1 ;
--  int res1 = 0 ;
-   PyObject * obj0 = 0 ;
-   
--  if (!PyArg_ParseTuple(args,(char *)"O:selinux_check_passwd_access",&obj0)) SWIG_fail;
-+  if (!PyArg_ParseTuple(args,(char *)"O:selinux_check_securetty_context",&obj0)) SWIG_fail;
-   {
--    res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_access_vector_t,  0 );
--    if (!SWIG_IsOK(res1)) {
--      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "selinux_check_passwd_access" "', argument " "1"" of type '" "access_vector_t""'"); 
--    }  
--    if (!argp1) {
--      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "selinux_check_passwd_access" "', argument " "1"" of type '" "access_vector_t""'");
--    } else {
--      arg1 = *((access_vector_t *)(argp1));
--    }
-+    arg1 = (security_context_t)PyString_AsString(obj0);
-   }
--  result = (int)selinux_check_passwd_access(arg1);
-+  result = (int)selinux_check_securetty_context(arg1);
-   resultobj = SWIG_From_int((int)(result));
-   return resultobj;
- fail:
-@@ -4113,30 +4595,26 @@
- }
- 
- 
--SWIGINTERN PyObject *_wrap_checkPasswdAccess(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+SWIGINTERN PyObject *_wrap_set_selinuxmnt(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-   PyObject *resultobj = 0;
--  access_vector_t arg1 ;
--  int result;
--  void *argp1 ;
--  int res1 = 0 ;
-+  char *arg1 = (char *) 0 ;
-+  int res1 ;
-+  char *buf1 = 0 ;
-+  int alloc1 = 0 ;
-   PyObject * obj0 = 0 ;
-   
--  if (!PyArg_ParseTuple(args,(char *)"O:checkPasswdAccess",&obj0)) SWIG_fail;
--  {
--    res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_access_vector_t,  0 );
--    if (!SWIG_IsOK(res1)) {
--      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "checkPasswdAccess" "', argument " "1"" of type '" "access_vector_t""'"); 
--    }  
--    if (!argp1) {
--      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "checkPasswdAccess" "', argument " "1"" of type '" "access_vector_t""'");
--    } else {
--      arg1 = *((access_vector_t *)(argp1));
--    }
-+  if (!PyArg_ParseTuple(args,(char *)"O:set_selinuxmnt",&obj0)) SWIG_fail;
-+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+  if (!SWIG_IsOK(res1)) {
-+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "set_selinuxmnt" "', argument " "1"" of type '" "char *""'");
-   }
--  result = (int)checkPasswdAccess(arg1);
--  resultobj = SWIG_From_int((int)(result));
-+  arg1 = (char *)(buf1);
-+  set_selinuxmnt(arg1);
-+  resultobj = SWIG_Py_Void();
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-   return resultobj;
- fail:
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-   return NULL;
- }
- 
-@@ -4153,6 +4631,10 @@
-   int res2 ;
-   char *buf2 = 0 ;
-   int alloc2 = 0 ;
-+  void *argp3 = 0 ;
-+  int res3 = 0 ;
-+  void *argp4 = 0 ;
-+  int res4 = 0 ;
-   PyObject * obj0 = 0 ;
-   PyObject * obj1 = 0 ;
-   PyObject * obj2 = 0 ;
-@@ -4169,58 +4651,16 @@
-     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "rpm_execcon" "', argument " "2"" of type '" "char const *""'");
-   }
-   arg2 = (char *)(buf2);
--  {
--    /* Check if is a list */
--    if (PyList_Check(obj2)) {
--      int size = PyList_Size(obj2);
--      int i = 0;
--      arg3 = (char **) malloc((size+1)*sizeof(char *));
--      if (arg3 == NULL) {
--        PyErr_SetString(PyExc_MemoryError,"Out of memory");
--        return NULL;
--      }
--      for (i = 0; i < size; i++) {
--        PyObject *o = PyList_GetItem(obj2,i);
--        if (PyString_Check(o))
--        arg3[i] = PyString_AsString(PyList_GetItem(obj2,i));
--        else {
--          PyErr_SetString(PyExc_TypeError,"list must contain strings");
--          free(arg3);
--          return NULL;
--        }
--      }
--      arg3[i] = 0;
--    } else {
--      PyErr_SetString(PyExc_TypeError,"not a list");
--      return NULL;
--    }
--  }
--  {
--    /* Check if is a list */
--    if (PyList_Check(obj3)) {
--      int size = PyList_Size(obj3);
--      int i = 0;
--      arg4 = (char **) malloc((size+1)*sizeof(char *));
--      if (arg4 == NULL) {
--        PyErr_SetString(PyExc_MemoryError,"Out of memory");
--        return NULL;
--      }
--      for (i = 0; i < size; i++) {
--        PyObject *o = PyList_GetItem(obj3,i);
--        if (PyString_Check(o))
--        arg4[i] = PyString_AsString(PyList_GetItem(obj3,i));
--        else {
--          PyErr_SetString(PyExc_TypeError,"list must contain strings");
--          free(arg4);
--          return NULL;
--        }
--      }
--      arg4[i] = 0;
--    } else {
--      PyErr_SetString(PyExc_TypeError,"not a list");
--      return NULL;
--    }
-+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_p_char, 0 |  0 );
-+  if (!SWIG_IsOK(res3)) {
-+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "rpm_execcon" "', argument " "3"" of type '" "char **""'"); 
-+  }
-+  arg3 = (char **)(argp3);
-+  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_p_char, 0 |  0 );
-+  if (!SWIG_IsOK(res4)) {
-+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "rpm_execcon" "', argument " "4"" of type '" "char **""'"); 
-   }
-+  arg4 = (char **)(argp4);
-   result = (int)rpm_execcon(arg1,(char const *)arg2,arg3,arg4);
-   resultobj = SWIG_From_int((int)(result));
-   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-@@ -4387,9 +4827,101 @@
- }
- 
- 
-+SWIGINTERN PyObject *_wrap_selinux_file_context_cmp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+  PyObject *resultobj = 0;
-+  security_context_t arg1 ;
-+  security_context_t arg2 ;
-+  int result;
-+  PyObject * obj0 = 0 ;
-+  PyObject * obj1 = 0 ;
-+  
-+  if (!PyArg_ParseTuple(args,(char *)"OO:selinux_file_context_cmp",&obj0,&obj1)) SWIG_fail;
-+  {
-+    arg1 = (security_context_t)PyString_AsString(obj0);
-+  }
-+  {
-+    arg2 = (security_context_t)PyString_AsString(obj1);
-+  }
-+  result = (int)selinux_file_context_cmp(arg1,arg2);
-+  resultobj = SWIG_From_int((int)(result));
-+  return resultobj;
-+fail:
-+  return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_selinux_file_context_verify(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+  PyObject *resultobj = 0;
-+  char *arg1 = (char *) 0 ;
-+  mode_t arg2 ;
-+  int result;
-+  int res1 ;
-+  char *buf1 = 0 ;
-+  int alloc1 = 0 ;
-+  unsigned int val2 ;
-+  int ecode2 = 0 ;
-+  PyObject * obj0 = 0 ;
-+  PyObject * obj1 = 0 ;
-+  
-+  if (!PyArg_ParseTuple(args,(char *)"OO:selinux_file_context_verify",&obj0,&obj1)) SWIG_fail;
-+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+  if (!SWIG_IsOK(res1)) {
-+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "selinux_file_context_verify" "', argument " "1"" of type '" "char const *""'");
-+  }
-+  arg1 = (char *)(buf1);
-+  ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
-+  if (!SWIG_IsOK(ecode2)) {
-+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "selinux_file_context_verify" "', argument " "2"" of type '" "mode_t""'");
-+  } 
-+  arg2 = (mode_t)(val2);
-+  result = (int)selinux_file_context_verify((char const *)arg1,arg2);
-+  resultobj = SWIG_From_int((int)(result));
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  return resultobj;
-+fail:
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_selinux_lsetfilecon_default(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+  PyObject *resultobj = 0;
-+  char *arg1 = (char *) 0 ;
-+  int result;
-+  int res1 ;
-+  char *buf1 = 0 ;
-+  int alloc1 = 0 ;
-+  PyObject * obj0 = 0 ;
-+  
-+  if (!PyArg_ParseTuple(args,(char *)"O:selinux_lsetfilecon_default",&obj0)) SWIG_fail;
-+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+  if (!SWIG_IsOK(res1)) {
-+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "selinux_lsetfilecon_default" "', argument " "1"" of type '" "char const *""'");
-+  }
-+  arg1 = (char *)(buf1);
-+  result = (int)selinux_lsetfilecon_default((char const *)arg1);
-+  resultobj = SWIG_From_int((int)(result));
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  return resultobj;
-+fail:
-+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+  return NULL;
-+}
-+
-+
- static PyMethodDef SwigMethods[] = {
-+	 { (char *)"get_ordered_context_list", _wrap_get_ordered_context_list, METH_VARARGS, NULL},
-+	 { (char *)"get_ordered_context_list_with_level", _wrap_get_ordered_context_list_with_level, METH_VARARGS, NULL},
-+	 { (char *)"get_default_context", _wrap_get_default_context, METH_VARARGS, NULL},
-+	 { (char *)"get_default_context_with_level", _wrap_get_default_context_with_level, METH_VARARGS, NULL},
-+	 { (char *)"get_default_context_with_role", _wrap_get_default_context_with_role, METH_VARARGS, NULL},
-+	 { (char *)"get_default_context_with_rolelevel", _wrap_get_default_context_with_rolelevel, METH_VARARGS, NULL},
-+	 { (char *)"query_user_context", _wrap_query_user_context, METH_VARARGS, NULL},
-+	 { (char *)"manual_user_enter_context", _wrap_manual_user_enter_context, METH_VARARGS, NULL},
- 	 { (char *)"is_selinux_enabled", _wrap_is_selinux_enabled, METH_VARARGS, NULL},
- 	 { (char *)"is_selinux_mls_enabled", _wrap_is_selinux_mls_enabled, METH_VARARGS, NULL},
-+	 { (char *)"freecon", _wrap_freecon, METH_VARARGS, NULL},
-+	 { (char *)"freeconary", _wrap_freeconary, METH_VARARGS, NULL},
- 	 { (char *)"getcon", _wrap_getcon, METH_VARARGS, NULL},
- 	 { (char *)"setcon", _wrap_setcon, METH_VARARGS, NULL},
- 	 { (char *)"getpidcon", _wrap_getpidcon, METH_VARARGS, NULL},
-@@ -4426,6 +4958,8 @@
- 	 { (char *)"set_matchpathcon_flags", _wrap_set_matchpathcon_flags, METH_VARARGS, NULL},
- 	 { (char *)"matchpathcon_init", _wrap_matchpathcon_init, METH_VARARGS, NULL},
- 	 { (char *)"matchpathcon", _wrap_matchpathcon, METH_VARARGS, NULL},
-+	 { (char *)"matchpathcon_init_prefix", _wrap_matchpathcon_init_prefix, METH_VARARGS, NULL},
-+	 { (char *)"matchpathcon_fini", _wrap_matchpathcon_fini, METH_VARARGS, NULL},
- 	 { (char *)"matchmediacon", _wrap_matchmediacon, METH_VARARGS, NULL},
- 	 { (char *)"selinux_getenforcemode", _wrap_selinux_getenforcemode, METH_VARARGS, NULL},
- 	 { (char *)"selinux_policy_root", _wrap_selinux_policy_root, METH_VARARGS, NULL},
-@@ -4440,6 +4974,7 @@
- 	 { (char *)"selinux_homedir_context_path", _wrap_selinux_homedir_context_path, METH_VARARGS, NULL},
- 	 { (char *)"selinux_media_context_path", _wrap_selinux_media_context_path, METH_VARARGS, NULL},
- 	 { (char *)"selinux_contexts_path", _wrap_selinux_contexts_path, METH_VARARGS, NULL},
-+	 { (char *)"selinux_securetty_types_path", _wrap_selinux_securetty_types_path, METH_VARARGS, NULL},
- 	 { (char *)"selinux_booleans_path", _wrap_selinux_booleans_path, METH_VARARGS, NULL},
- 	 { (char *)"selinux_customizable_types_path", _wrap_selinux_customizable_types_path, METH_VARARGS, NULL},
- 	 { (char *)"selinux_users_path", _wrap_selinux_users_path, METH_VARARGS, NULL},
-@@ -4447,14 +4982,17 @@
- 	 { (char *)"selinux_translations_path", _wrap_selinux_translations_path, METH_VARARGS, NULL},
- 	 { (char *)"selinux_netfilter_context_path", _wrap_selinux_netfilter_context_path, METH_VARARGS, NULL},
- 	 { (char *)"selinux_path", _wrap_selinux_path, METH_VARARGS, NULL},
--	 { (char *)"selinux_check_passwd_access", _wrap_selinux_check_passwd_access, METH_VARARGS, NULL},
--	 { (char *)"checkPasswdAccess", _wrap_checkPasswdAccess, METH_VARARGS, NULL},
-+	 { (char *)"selinux_check_securetty_context", _wrap_selinux_check_securetty_context, METH_VARARGS, NULL},
-+	 { (char *)"set_selinuxmnt", _wrap_set_selinuxmnt, METH_VARARGS, NULL},
- 	 { (char *)"rpm_execcon", _wrap_rpm_execcon, METH_VARARGS, NULL},
- 	 { (char *)"is_context_customizable", _wrap_is_context_customizable, METH_VARARGS, NULL},
- 	 { (char *)"selinux_trans_to_raw_context", _wrap_selinux_trans_to_raw_context, METH_VARARGS, NULL},
- 	 { (char *)"selinux_raw_to_trans_context", _wrap_selinux_raw_to_trans_context, METH_VARARGS, NULL},
- 	 { (char *)"selinux_getpolicytype", _wrap_selinux_getpolicytype, METH_VARARGS, NULL},
- 	 { (char *)"getseuserbyname", _wrap_getseuserbyname, METH_VARARGS, NULL},
-+	 { (char *)"selinux_file_context_cmp", _wrap_selinux_file_context_cmp, METH_VARARGS, NULL},
-+	 { (char *)"selinux_file_context_verify", _wrap_selinux_file_context_verify, METH_VARARGS, NULL},
-+	 { (char *)"selinux_lsetfilecon_default", _wrap_selinux_lsetfilecon_default, METH_VARARGS, NULL},
- 	 { NULL, NULL, 0, NULL }
- };
- 
-@@ -4462,41 +5000,41 @@
- /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
- 
- static swig_type_info _swigt__p_SELboolean = {"_p_SELboolean", "SELboolean *", 0, 0, (void*)0, 0};
--static swig_type_info _swigt__p_access_vector_t = {"_p_access_vector_t", "access_vector_t *", 0, 0, (void*)0, 0};
- static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
- static swig_type_info _swigt__p_int = {"_p_int", "int *", 0, 0, (void*)0, 0};
- static swig_type_info _swigt__p_p_char = {"_p_p_char", "char **", 0, 0, (void*)0, 0};
- static swig_type_info _swigt__p_p_p_char = {"_p_p_p_char", "char ***", 0, 0, (void*)0, 0};
-+static swig_type_info _swigt__p_p_security_context_t = {"_p_p_security_context_t", "security_context_t **", 0, 0, (void*)0, 0};
- static swig_type_info _swigt__p_security_context_t = {"_p_security_context_t", "security_context_t *", 0, 0, (void*)0, 0};
- static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "unsigned int *|mode_t *", 0, 0, (void*)0, 0};
- 
- static swig_type_info *swig_type_initial[] = {
-   &_swigt__p_SELboolean,
--  &_swigt__p_access_vector_t,
-   &_swigt__p_char,
-   &_swigt__p_int,
-   &_swigt__p_p_char,
-   &_swigt__p_p_p_char,
-+  &_swigt__p_p_security_context_t,
-   &_swigt__p_security_context_t,
-   &_swigt__p_unsigned_int,
- };
- 
- static swig_cast_info _swigc__p_SELboolean[] = {  {&_swigt__p_SELboolean, 0, 0, 0},{0, 0, 0, 0}};
--static swig_cast_info _swigc__p_access_vector_t[] = {  {&_swigt__p_access_vector_t, 0, 0, 0},{0, 0, 0, 0}};
- static swig_cast_info _swigc__p_char[] = {  {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
- static swig_cast_info _swigc__p_int[] = {  {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
- static swig_cast_info _swigc__p_p_char[] = {  {&_swigt__p_p_char, 0, 0, 0},{0, 0, 0, 0}};
- static swig_cast_info _swigc__p_p_p_char[] = {  {&_swigt__p_p_p_char, 0, 0, 0},{0, 0, 0, 0}};
-+static swig_cast_info _swigc__p_p_security_context_t[] = {  {&_swigt__p_p_security_context_t, 0, 0, 0},{0, 0, 0, 0}};
- static swig_cast_info _swigc__p_security_context_t[] = {  {&_swigt__p_security_context_t, 0, 0, 0},{0, 0, 0, 0}};
- static swig_cast_info _swigc__p_unsigned_int[] = {  {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}};
+ %typedef unsigned mode_t;
  
- static swig_cast_info *swig_cast_initial[] = {
-   _swigc__p_SELboolean,
--  _swigc__p_access_vector_t,
-   _swigc__p_char,
-   _swigc__p_int,
-   _swigc__p_p_char,
-   _swigc__p_p_p_char,
-+  _swigc__p_p_security_context_t,
-   _swigc__p_security_context_t,
-   _swigc__p_unsigned_int,
- };
-@@ -5019,6 +5557,7 @@
-   SWIG_InstallConstants(d,swig_const_table);
-   
-   
-+  SWIG_Python_SetConstant(d, "SELINUX_DEFAULTUSER",SWIG_FromCharPtr("user_u"));
-   SWIG_Python_SetConstant(d, "MATCHPATHCON_BASEONLY",SWIG_From_int((int)(1)));
-   SWIG_Python_SetConstant(d, "MATCHPATHCON_NOTRANS",SWIG_From_int((int)(2)));
- }
+ %include "../include/selinux/get_context_list.h"


Index: libselinux.spec
===================================================================
RCS file: /cvs/extras/rpms/libselinux/devel/libselinux.spec,v
retrieving revision 1.264
retrieving revision 1.265
diff -u -r1.264 -r1.265
--- libselinux.spec	24 Apr 2007 14:48:35 -0000	1.264
+++ libselinux.spec	18 May 2007 14:52:28 -0000	1.265
@@ -1,7 +1,7 @@
 %define libsepolver 2.0.1-1
 Summary: SELinux library and simple utilities
 Name: libselinux
-Version: 2.0.14
+Version: 2.0.16
 Release: 1%{?dist}
 License: Public domain (uncopyrighted)
 Group: System Environment/Libraries
@@ -121,6 +121,11 @@
 %{_libdir}/python*/site-packages/selinux.py*
 
 %changelog
+* Fri May 4 2007 Dan Walsh <dwalsh at redhat.com> - 2.0.16-1
+- Upgrade to upstream
+	* Merged additional swig python bindings from Dan Walsh.
+	* Merged helpful message when selinuxfs mount fails patch from Dax Kelson.
+
 * Tue Apr 24 2007 Dan Walsh <dwalsh at redhat.com> - 2.0.14-1
 - Upgrade to upstream
 	* Merged build fix for avc_internal.c from Joshua Brindle.


Index: sources
===================================================================
RCS file: /cvs/extras/rpms/libselinux/devel/sources,v
retrieving revision 1.141
retrieving revision 1.142
diff -u -r1.141 -r1.142
--- sources	24 Apr 2007 14:48:35 -0000	1.141
+++ sources	18 May 2007 14:52:28 -0000	1.142
@@ -1 +1 @@
-c7bcec2fc9766fd31a2468f08ac186ac  libselinux-2.0.14.tgz
+6dd946578c8fd9bafca0274c0d5bbbdd  libselinux-2.0.16.tgz




More information about the fedora-extras-commits mailing list