diff --git a/libselinux-rhat.patch b/libselinux-rhat.patch index a4381f8..51570bb 100644 --- a/libselinux-rhat.patch +++ b/libselinux-rhat.patch @@ -1,3 +1,85 @@ +diff --git a/libselinux/man/man8/selinux.8 b/libselinux/man/man8/selinux.8 +index 5caa592..1fc5b95 100644 +--- a/libselinux/man/man8/selinux.8 ++++ b/libselinux/man/man8/selinux.8 +@@ -1,7 +1,7 @@ + .TH "selinux" "8" "29 Apr 2005" "dwalsh@redhat.com" "SELinux Command Line documentation" + + .SH "NAME" +-selinux \- NSA Security-Enhanced Linux (SELinux) ++SELinux \- NSA Security-Enhanced Linux (SELinux) + + .SH "DESCRIPTION" + +@@ -62,12 +62,12 @@ compile-time tunable options and a set of runtime policy booleans. + .B system-config-securitylevel + allows customization of these booleans and tunables. + +-Many domains that are protected by SELinux also include selinux man pages explainging how to customize their policy. ++Many domains that are protected by SELinux also include SELinux man pages explaining how to customize their policy. + + .SH FILE LABELING + + All files, directories, devices ... have a security context/label associated with them. These context are stored in the extended attributes of the file system. +-Problems with SELinux often arise from the file system being mislabeled. This can be caused by booting the machine with a non selinux kernel. If you see an error message containing file_t, that is usually a good indicator that you have a serious problem with file system labeling. ++Problems with SELinux often arise from the file system being mislabeled. This can be caused by booting the machine with a non SELinux kernel. If you see an error message containing file_t, that is usually a good indicator that you have a serious problem with file system labeling. + + The best way to relabel the file system is to create the flag file /.autorelabel and reboot. system-config-securitylevel, also has this capability. The restorcon/fixfiles commands are also available for relabeling files. + +diff --git a/libselinux/man/man8/selinuxconlist.8 b/libselinux/man/man8/selinuxconlist.8 +new file mode 100644 +index 0000000..c698daa +--- /dev/null ++++ b/libselinux/man/man8/selinuxconlist.8 +@@ -0,0 +1,18 @@ ++.TH "selinuxconlist" "1" "7 May 2008" "dwalsh@redhat.com" "SELinux Command Line documentation" ++.SH "NAME" ++selinuxconlist \- list all SELinux context reachable for user ++.SH "SYNOPSIS" ++.B selinuxconlist [-l level] user [context] ++ ++.SH "DESCRIPTION" ++.B selinuxconlist ++reports the list of context reachable for user from the current context or specified context ++ ++.B \-l level ++mcs/mls level ++ ++.SH AUTHOR ++This manual page was written by Dan Walsh . ++ ++.SH "SEE ALSO" ++secon(8), selinuxdefcon(8) +diff --git a/libselinux/man/man8/selinuxdefcon.8 b/libselinux/man/man8/selinuxdefcon.8 +new file mode 100644 +index 0000000..3cbeff2 +--- /dev/null ++++ b/libselinux/man/man8/selinuxdefcon.8 +@@ -0,0 +1,24 @@ ++.TH "selinuxdefcon" "1" "7 May 2008" "dwalsh@redhat.com" "SELinux Command Line documentation" ++.SH "NAME" ++selinuxdefcon \- report default SELinux context for user ++ ++.SH "SYNOPSIS" ++.B selinuxdefcon [-l level] user fromcon ++ ++.SH "DESCRIPTION" ++.B selinuxdefcon ++reports the default context for the specified user from the specified context ++ ++.B \-l level ++mcs/mls level ++ ++.SH EXAMPLE ++# selinuxdefcon jsmith system_u:system_r:sshd_t:s0 ++.br ++unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 ++ ++.SH AUTHOR ++This manual page was written by Dan Walsh . ++ ++.SH "SEE ALSO" ++secon(8), selinuxconlist(8) diff --git a/libselinux/src/Makefile b/libselinux/src/Makefile index bf665ab..ccd08ae 100644 --- a/libselinux/src/Makefile @@ -195,6 +277,67 @@ index bb4eb9f..c9ae42f 100644 va_end(ap); } +diff --git a/libselinux/src/selinux.py b/libselinux/src/selinux.py +index fd63a4f..705012c 100644 +--- a/libselinux/src/selinux.py ++++ b/libselinux/src/selinux.py +@@ -1,5 +1,5 @@ + # This file was automatically generated by SWIG (http://www.swig.org). +-# Version 1.3.40 ++# Version 2.0.1 + # + # Do not make changes to this file unless you know what you are doing--modify + # the SWIG interface file instead. +@@ -79,6 +79,14 @@ def restorecon(path, recursive=False): + map(restorecon, [os.path.join(dirname, fname) + for fname in fnames]), None) + ++def chcon(path, context, recursive=False): ++ """ Set the SELinux context on a given path """ ++ lsetfilecon(path, context) ++ if recursive: ++ for root, dirs, files in os.walk(path): ++ for name in files + dirs: ++ lsetfilecon(os.path.join(root,name), context) ++ + def copytree(src, dest): + """ An SELinux-friendly shutil.copytree method """ + shutil.copytree(src, dest) +@@ -1588,6 +1596,7 @@ get_default_type = _selinux.get_default_type + SELABEL_CTX_FILE = _selinux.SELABEL_CTX_FILE + SELABEL_CTX_MEDIA = _selinux.SELABEL_CTX_MEDIA + SELABEL_CTX_X = _selinux.SELABEL_CTX_X ++SELABEL_CTX_DB = _selinux.SELABEL_CTX_DB + SELABEL_OPT_UNUSED = _selinux.SELABEL_OPT_UNUSED + SELABEL_OPT_VALIDATE = _selinux.SELABEL_OPT_VALIDATE + SELABEL_OPT_BASEONLY = _selinux.SELABEL_OPT_BASEONLY +@@ -1621,6 +1630,15 @@ SELABEL_X_EVENT = _selinux.SELABEL_X_EVENT + SELABEL_X_SELN = _selinux.SELABEL_X_SELN + SELABEL_X_POLYPROP = _selinux.SELABEL_X_POLYPROP + SELABEL_X_POLYSELN = _selinux.SELABEL_X_POLYSELN ++SELABEL_DB_DATABASE = _selinux.SELABEL_DB_DATABASE ++SELABEL_DB_SCHEMA = _selinux.SELABEL_DB_SCHEMA ++SELABEL_DB_TABLE = _selinux.SELABEL_DB_TABLE ++SELABEL_DB_COLUMN = _selinux.SELABEL_DB_COLUMN ++SELABEL_DB_SEQUENCE = _selinux.SELABEL_DB_SEQUENCE ++SELABEL_DB_VIEW = _selinux.SELABEL_DB_VIEW ++SELABEL_DB_PROCEDURE = _selinux.SELABEL_DB_PROCEDURE ++SELABEL_DB_BLOB = _selinux.SELABEL_DB_BLOB ++SELABEL_DB_TUPLE = _selinux.SELABEL_DB_TUPLE + + def is_selinux_enabled(): + return _selinux.is_selinux_enabled() +@@ -2201,6 +2219,10 @@ def selinux_x_context_path(): + return _selinux.selinux_x_context_path() + selinux_x_context_path = _selinux.selinux_x_context_path + ++def selinux_sepgsql_context_path(): ++ return _selinux.selinux_sepgsql_context_path() ++selinux_sepgsql_context_path = _selinux.selinux_sepgsql_context_path ++ + def selinux_contexts_path(): + return _selinux.selinux_contexts_path() + selinux_contexts_path = _selinux.selinux_contexts_path diff --git a/libselinux/src/selinuxswig_python.i b/libselinux/src/selinuxswig_python.i index dea0e80..bb227e9 100644 --- a/libselinux/src/selinuxswig_python.i @@ -255,3 +398,1018 @@ index dea0e80..bb227e9 100644 } $1[size] = NULL; } +diff --git a/libselinux/src/selinuxswig_wrap.c b/libselinux/src/selinuxswig_wrap.c +index e0884f6..e60a3d3 100644 +--- a/libselinux/src/selinuxswig_wrap.c ++++ b/libselinux/src/selinuxswig_wrap.c +@@ -1,6 +1,6 @@ + /* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). +- * Version 1.3.40 ++ * Version 2.0.1 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make +@@ -177,7 +177,7 @@ + /* + Flags/methods for returning states. + +- The SWIG conversion methods, as ConvertPtr, return and integer ++ The SWIG conversion methods, as ConvertPtr, return an integer + that tells if the conversion was successful or not. And if not, + an error code can be returned (see swigerrors.swg for the codes). + +@@ -1064,9 +1064,6 @@ SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *self, PyObject *func) + + + /* ----------------------------------------------------------------------------- +- * See the LICENSE file for information on copyright, usage and redistribution +- * of SWIG, and the README file for authors - http://www.swig.org/release.html. +- * + * pyrun.swg + * + * This file contains the runtime support for Python modules +@@ -1113,8 +1110,18 @@ SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *self, PyObject *func) + #define SWIG_SetErrorMsg SWIG_Python_SetErrorMsg + #define SWIG_ErrorType(code) SWIG_Python_ErrorType(code) + #define SWIG_Error(code, msg) SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg) +-#define SWIG_fail goto fail ++#define SWIG_fail goto fail + ++/* ++ * Python 2.7 and newer and Python 3.1 and newer should use Capsules API instead of ++ * CObjects API. ++ */ ++#if ((PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 6) || \ ++ (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION > 0)) ++#define USE_CAPSULES ++#define TYPE_POINTER_NAME \ ++ ((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION ".type_pointer_capsule" SWIG_TYPE_TABLE_NAME) ++#endif + + /* Runtime API implementation */ + +@@ -2047,10 +2054,13 @@ _SWIG_This(void) + return SWIG_Python_str_FromChar("this"); + } + ++static PyObject *swig_this = NULL; ++ + SWIGRUNTIME PyObject * + SWIG_This(void) + { +- static PyObject *SWIG_STATIC_POINTER(swig_this) = _SWIG_This(); ++ if (swig_this == NULL) ++ swig_this = _SWIG_This(); + return swig_this; + } + +@@ -2154,7 +2164,7 @@ SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int + int newmemory = 0; + *ptr = SWIG_TypeCast(tc,vptr,&newmemory); + if (newmemory == SWIG_CAST_NEW_MEMORY) { +- assert(own); ++ assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */ + if (own) + *own = *own | SWIG_CAST_NEW_MEMORY; + } +@@ -2424,8 +2434,12 @@ SWIG_Python_GetModule(void) { + #ifdef SWIG_LINK_RUNTIME + type_pointer = SWIG_ReturnGlobalTypeList((void *)0); + #else ++#ifdef USE_CAPSULES ++ type_pointer = PyCapsule_Import(TYPE_POINTER_NAME, 0); ++#else + type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, + (char*)"type_pointer" SWIG_TYPE_TABLE_NAME); ++#endif + if (PyErr_Occurred()) { + PyErr_Clear(); + type_pointer = (void *)0; +@@ -2470,9 +2484,14 @@ PyModule_AddObject(PyObject *m, char *name, PyObject *o) + SWIGRUNTIME void + SWIG_Python_DestroyModule(void *vptr) + { ++ size_t i; ++#ifdef USE_CAPSULES ++ swig_module_info *swig_module = ++ (swig_module_info *) PyCapsule_GetPointer((PyObject *)vptr, TYPE_POINTER_NAME); ++#else + swig_module_info *swig_module = (swig_module_info *) vptr; ++#endif + swig_type_info **types = swig_module->types; +- size_t i; + for (i =0; i < swig_module->size; ++i) { + swig_type_info *ty = types[i]; + if (ty->owndata) { +@@ -2481,6 +2500,7 @@ SWIG_Python_DestroyModule(void *vptr) + } + } + Py_DECREF(SWIG_This()); ++ swig_this = NULL; + } + + SWIGRUNTIME void +@@ -2494,9 +2514,18 @@ SWIG_Python_SetModule(swig_module_info *swig_module) { + PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, + swig_empty_runtime_method_table); + #endif ++#ifdef USE_CAPSULES ++ PyObject *pointer = PyCapsule_New((void *)swig_module, TYPE_POINTER_NAME, ++ (PyCapsule_Destructor)SWIG_Python_DestroyModule); ++#else + PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule); ++#endif + if (pointer && module) { ++#ifdef USE_CAPSULES ++ PyModule_AddObject(module, (char*)"type_pointer_capsule" SWIG_TYPE_TABLE_NAME, pointer); ++#else + PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer); ++#endif + } else { + Py_XDECREF(pointer); + } +@@ -2517,12 +2546,20 @@ SWIG_Python_TypeQuery(const char *type) + PyObject *obj = PyDict_GetItem(cache, key); + swig_type_info *descriptor; + if (obj) { ++#ifdef USE_CAPSULES ++ descriptor = (swig_type_info *) PyCapsule_GetPointer(obj, type); ++#else + descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj); ++#endif + } else { + swig_module_info *swig_module = SWIG_Python_GetModule(); + descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type); + if (descriptor) { ++#ifdef USE_CAPSULES ++ obj = PyCapsule_New(descriptor, type, NULL); ++#else + obj = PyCObject_FromVoidPtr(descriptor, NULL); ++#endif + PyDict_SetItem(cache, key, obj); + Py_DECREF(obj); + } +@@ -2717,7 +2754,7 @@ static swig_module_info swig_module = {swig_types, 34, 0, 0, 0, 0}; + #endif + #define SWIG_name "_selinux" + +-#define SWIGVERSION 0x010340 ++#define SWIGVERSION 0x020001 + #define SWIG_VERSION SWIGVERSION + + +@@ -3345,7 +3382,7 @@ fail: + + SWIGINTERN PyObject *_wrap_avc_context_to_sid(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + security_id_t *arg2 = (security_id_t *) 0 ; + int res1 ; + char *buf1 = 0 ; +@@ -3360,7 +3397,7 @@ SWIGINTERN PyObject *_wrap_avc_context_to_sid(PyObject *SWIGUNUSEDPARM(self), Py + if (!PyArg_ParseTuple(args,(char *)"O:avc_context_to_sid",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "avc_context_to_sid" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "avc_context_to_sid" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + result = (int)avc_context_to_sid(arg1,arg2); +@@ -3383,7 +3420,7 @@ fail: + + SWIGINTERN PyObject *_wrap_avc_context_to_sid_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + security_id_t *arg2 = (security_id_t *) 0 ; + int res1 ; + char *buf1 = 0 ; +@@ -3398,7 +3435,7 @@ SWIGINTERN PyObject *_wrap_avc_context_to_sid_raw(PyObject *SWIGUNUSEDPARM(self) + if (!PyArg_ParseTuple(args,(char *)"O:avc_context_to_sid_raw",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "avc_context_to_sid_raw" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "avc_context_to_sid_raw" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + result = (int)avc_context_to_sid_raw(arg1,arg2); +@@ -5641,7 +5678,9 @@ SWIGINTERN PyObject *_wrap_get_ordered_context_list(PyObject *SWIGUNUSEDPARM(sel + if (*arg3) { + plist = PyList_New(result); + for (i = 0; i < result; i++) { +- PyList_SetItem(plist, i, PyString_FromString((*arg3)[i])); ++ PyList_SetItem(plist, i, ++ PyBytes_FromString((*arg3)[i]) ++ ); + } + } else { + plist = PyList_New(0); +@@ -5714,7 +5753,9 @@ SWIGINTERN PyObject *_wrap_get_ordered_context_list_with_level(PyObject *SWIGUNU + if (*arg4) { + plist = PyList_New(result); + for (i = 0; i < result; i++) { +- PyList_SetItem(plist, i, PyString_FromString((*arg4)[i])); ++ PyList_SetItem(plist, i, ++ PyBytes_FromString((*arg4)[i]) ++ ); + } + } else { + plist = PyList_New(0); +@@ -6390,7 +6431,7 @@ fail: + + SWIGINTERN PyObject *_wrap_setcon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; +@@ -6400,7 +6441,7 @@ SWIGINTERN PyObject *_wrap_setcon(PyObject *SWIGUNUSEDPARM(self), PyObject *args + if (!PyArg_ParseTuple(args,(char *)"O:setcon",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setcon" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setcon" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -6421,7 +6462,7 @@ fail: + + SWIGINTERN PyObject *_wrap_setcon_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; +@@ -6431,7 +6472,7 @@ SWIGINTERN PyObject *_wrap_setcon_raw(PyObject *SWIGUNUSEDPARM(self), PyObject * + if (!PyArg_ParseTuple(args,(char *)"O:setcon_raw",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setcon_raw" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setcon_raw" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -6650,7 +6691,7 @@ fail: + + SWIGINTERN PyObject *_wrap_setexeccon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; +@@ -6660,7 +6701,7 @@ SWIGINTERN PyObject *_wrap_setexeccon(PyObject *SWIGUNUSEDPARM(self), PyObject * + if (!PyArg_ParseTuple(args,(char *)"O:setexeccon",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setexeccon" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setexeccon" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -6681,7 +6722,7 @@ fail: + + SWIGINTERN PyObject *_wrap_setexeccon_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; +@@ -6691,7 +6732,7 @@ SWIGINTERN PyObject *_wrap_setexeccon_raw(PyObject *SWIGUNUSEDPARM(self), PyObje + if (!PyArg_ParseTuple(args,(char *)"O:setexeccon_raw",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setexeccon_raw" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setexeccon_raw" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -6772,7 +6813,7 @@ fail: + + SWIGINTERN PyObject *_wrap_setfscreatecon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; +@@ -6782,7 +6823,7 @@ SWIGINTERN PyObject *_wrap_setfscreatecon(PyObject *SWIGUNUSEDPARM(self), PyObje + if (!PyArg_ParseTuple(args,(char *)"O:setfscreatecon",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setfscreatecon" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setfscreatecon" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -6803,7 +6844,7 @@ fail: + + SWIGINTERN PyObject *_wrap_setfscreatecon_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; +@@ -6813,7 +6854,7 @@ SWIGINTERN PyObject *_wrap_setfscreatecon_raw(PyObject *SWIGUNUSEDPARM(self), Py + if (!PyArg_ParseTuple(args,(char *)"O:setfscreatecon_raw",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setfscreatecon_raw" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setfscreatecon_raw" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -6894,7 +6935,7 @@ fail: + + SWIGINTERN PyObject *_wrap_setkeycreatecon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; +@@ -6904,7 +6945,7 @@ SWIGINTERN PyObject *_wrap_setkeycreatecon(PyObject *SWIGUNUSEDPARM(self), PyObj + if (!PyArg_ParseTuple(args,(char *)"O:setkeycreatecon",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setkeycreatecon" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setkeycreatecon" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -6925,7 +6966,7 @@ fail: + + SWIGINTERN PyObject *_wrap_setkeycreatecon_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; +@@ -6935,7 +6976,7 @@ SWIGINTERN PyObject *_wrap_setkeycreatecon_raw(PyObject *SWIGUNUSEDPARM(self), P + if (!PyArg_ParseTuple(args,(char *)"O:setkeycreatecon_raw",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setkeycreatecon_raw" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setkeycreatecon_raw" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -7016,7 +7057,7 @@ fail: + + SWIGINTERN PyObject *_wrap_setsockcreatecon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; +@@ -7026,7 +7067,7 @@ SWIGINTERN PyObject *_wrap_setsockcreatecon(PyObject *SWIGUNUSEDPARM(self), PyOb + if (!PyArg_ParseTuple(args,(char *)"O:setsockcreatecon",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setsockcreatecon" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setsockcreatecon" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -7047,7 +7088,7 @@ fail: + + SWIGINTERN PyObject *_wrap_setsockcreatecon_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; +@@ -7057,7 +7098,7 @@ SWIGINTERN PyObject *_wrap_setsockcreatecon_raw(PyObject *SWIGUNUSEDPARM(self), + if (!PyArg_ParseTuple(args,(char *)"O:setsockcreatecon_raw",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setsockcreatecon_raw" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "setsockcreatecon_raw" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -8514,8 +8555,8 @@ fail: + + SWIGINTERN PyObject *_wrap_security_compute_av(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; +- security_context_t arg2 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; ++ security_context_t arg2 = (security_context_t) (security_context_t)0 ; + security_class_t arg3 ; + access_vector_t arg4 ; + struct av_decision *arg5 = (struct av_decision *) 0 ; +@@ -8541,12 +8582,12 @@ SWIGINTERN PyObject *_wrap_security_compute_av(PyObject *SWIGUNUSEDPARM(self), P + if (!PyArg_ParseTuple(args,(char *)"OOOOO:security_compute_av",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_av" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_av" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + if (!SWIG_IsOK(res2)) { +- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_av" "', argument " "2"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_av" "', argument " "2"" of type '" "security_context_t const""'"); + } + arg2 = (security_context_t)(buf2); + ecode3 = SWIG_AsVal_unsigned_SS_short(obj2, &val3); +@@ -8584,8 +8625,8 @@ fail: + + SWIGINTERN PyObject *_wrap_security_compute_av_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; +- security_context_t arg2 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; ++ security_context_t arg2 = (security_context_t) (security_context_t)0 ; + security_class_t arg3 ; + access_vector_t arg4 ; + struct av_decision *arg5 = (struct av_decision *) 0 ; +@@ -8611,12 +8652,12 @@ SWIGINTERN PyObject *_wrap_security_compute_av_raw(PyObject *SWIGUNUSEDPARM(self + if (!PyArg_ParseTuple(args,(char *)"OOOOO:security_compute_av_raw",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_av_raw" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_av_raw" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + if (!SWIG_IsOK(res2)) { +- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_av_raw" "', argument " "2"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_av_raw" "', argument " "2"" of type '" "security_context_t const""'"); + } + arg2 = (security_context_t)(buf2); + ecode3 = SWIG_AsVal_unsigned_SS_short(obj2, &val3); +@@ -8654,8 +8695,8 @@ fail: + + SWIGINTERN PyObject *_wrap_security_compute_av_flags(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; +- security_context_t arg2 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; ++ security_context_t arg2 = (security_context_t) (security_context_t)0 ; + security_class_t arg3 ; + access_vector_t arg4 ; + struct av_decision *arg5 = (struct av_decision *) 0 ; +@@ -8681,12 +8722,12 @@ SWIGINTERN PyObject *_wrap_security_compute_av_flags(PyObject *SWIGUNUSEDPARM(se + if (!PyArg_ParseTuple(args,(char *)"OOOOO:security_compute_av_flags",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_av_flags" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_av_flags" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + if (!SWIG_IsOK(res2)) { +- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_av_flags" "', argument " "2"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_av_flags" "', argument " "2"" of type '" "security_context_t const""'"); + } + arg2 = (security_context_t)(buf2); + ecode3 = SWIG_AsVal_unsigned_SS_short(obj2, &val3); +@@ -8724,8 +8765,8 @@ fail: + + SWIGINTERN PyObject *_wrap_security_compute_av_flags_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; +- security_context_t arg2 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; ++ security_context_t arg2 = (security_context_t) (security_context_t)0 ; + security_class_t arg3 ; + access_vector_t arg4 ; + struct av_decision *arg5 = (struct av_decision *) 0 ; +@@ -8751,12 +8792,12 @@ SWIGINTERN PyObject *_wrap_security_compute_av_flags_raw(PyObject *SWIGUNUSEDPAR + if (!PyArg_ParseTuple(args,(char *)"OOOOO:security_compute_av_flags_raw",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_av_flags_raw" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_av_flags_raw" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + if (!SWIG_IsOK(res2)) { +- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_av_flags_raw" "', argument " "2"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_av_flags_raw" "', argument " "2"" of type '" "security_context_t const""'"); + } + arg2 = (security_context_t)(buf2); + ecode3 = SWIG_AsVal_unsigned_SS_short(obj2, &val3); +@@ -8794,8 +8835,8 @@ fail: + + SWIGINTERN PyObject *_wrap_security_compute_create(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; +- security_context_t arg2 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; ++ security_context_t arg2 = (security_context_t) (security_context_t)0 ; + security_class_t arg3 ; + security_context_t *arg4 = (security_context_t *) 0 ; + int res1 ; +@@ -8816,12 +8857,12 @@ SWIGINTERN PyObject *_wrap_security_compute_create(PyObject *SWIGUNUSEDPARM(self + if (!PyArg_ParseTuple(args,(char *)"OOO:security_compute_create",&obj0,&obj1,&obj2)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_create" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_create" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + if (!SWIG_IsOK(res2)) { +- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_create" "', argument " "2"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_create" "', argument " "2"" of type '" "security_context_t const""'"); + } + arg2 = (security_context_t)(buf2); + ecode3 = SWIG_AsVal_unsigned_SS_short(obj2, &val3); +@@ -8857,8 +8898,8 @@ fail: + + SWIGINTERN PyObject *_wrap_security_compute_create_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; +- security_context_t arg2 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; ++ security_context_t arg2 = (security_context_t) (security_context_t)0 ; + security_class_t arg3 ; + security_context_t *arg4 = (security_context_t *) 0 ; + int res1 ; +@@ -8879,12 +8920,12 @@ SWIGINTERN PyObject *_wrap_security_compute_create_raw(PyObject *SWIGUNUSEDPARM( + if (!PyArg_ParseTuple(args,(char *)"OOO:security_compute_create_raw",&obj0,&obj1,&obj2)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_create_raw" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_create_raw" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + if (!SWIG_IsOK(res2)) { +- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_create_raw" "', argument " "2"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_create_raw" "', argument " "2"" of type '" "security_context_t const""'"); + } + arg2 = (security_context_t)(buf2); + ecode3 = SWIG_AsVal_unsigned_SS_short(obj2, &val3); +@@ -8920,8 +8961,8 @@ fail: + + SWIGINTERN PyObject *_wrap_security_compute_relabel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; +- security_context_t arg2 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; ++ security_context_t arg2 = (security_context_t) (security_context_t)0 ; + security_class_t arg3 ; + security_context_t *arg4 = (security_context_t *) 0 ; + int res1 ; +@@ -8942,12 +8983,12 @@ SWIGINTERN PyObject *_wrap_security_compute_relabel(PyObject *SWIGUNUSEDPARM(sel + if (!PyArg_ParseTuple(args,(char *)"OOO:security_compute_relabel",&obj0,&obj1,&obj2)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_relabel" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_relabel" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + if (!SWIG_IsOK(res2)) { +- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_relabel" "', argument " "2"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_relabel" "', argument " "2"" of type '" "security_context_t const""'"); + } + arg2 = (security_context_t)(buf2); + ecode3 = SWIG_AsVal_unsigned_SS_short(obj2, &val3); +@@ -8983,8 +9024,8 @@ fail: + + SWIGINTERN PyObject *_wrap_security_compute_relabel_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; +- security_context_t arg2 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; ++ security_context_t arg2 = (security_context_t) (security_context_t)0 ; + security_class_t arg3 ; + security_context_t *arg4 = (security_context_t *) 0 ; + int res1 ; +@@ -9005,12 +9046,12 @@ SWIGINTERN PyObject *_wrap_security_compute_relabel_raw(PyObject *SWIGUNUSEDPARM + if (!PyArg_ParseTuple(args,(char *)"OOO:security_compute_relabel_raw",&obj0,&obj1,&obj2)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_relabel_raw" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_relabel_raw" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + if (!SWIG_IsOK(res2)) { +- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_relabel_raw" "', argument " "2"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_relabel_raw" "', argument " "2"" of type '" "security_context_t const""'"); + } + arg2 = (security_context_t)(buf2); + ecode3 = SWIG_AsVal_unsigned_SS_short(obj2, &val3); +@@ -9046,8 +9087,8 @@ fail: + + SWIGINTERN PyObject *_wrap_security_compute_member(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; +- security_context_t arg2 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; ++ security_context_t arg2 = (security_context_t) (security_context_t)0 ; + security_class_t arg3 ; + security_context_t *arg4 = (security_context_t *) 0 ; + int res1 ; +@@ -9068,12 +9109,12 @@ SWIGINTERN PyObject *_wrap_security_compute_member(PyObject *SWIGUNUSEDPARM(self + if (!PyArg_ParseTuple(args,(char *)"OOO:security_compute_member",&obj0,&obj1,&obj2)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_member" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_member" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + if (!SWIG_IsOK(res2)) { +- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_member" "', argument " "2"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_member" "', argument " "2"" of type '" "security_context_t const""'"); + } + arg2 = (security_context_t)(buf2); + ecode3 = SWIG_AsVal_unsigned_SS_short(obj2, &val3); +@@ -9109,8 +9150,8 @@ fail: + + SWIGINTERN PyObject *_wrap_security_compute_member_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; +- security_context_t arg2 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; ++ security_context_t arg2 = (security_context_t) (security_context_t)0 ; + security_class_t arg3 ; + security_context_t *arg4 = (security_context_t *) 0 ; + int res1 ; +@@ -9131,12 +9172,12 @@ SWIGINTERN PyObject *_wrap_security_compute_member_raw(PyObject *SWIGUNUSEDPARM( + if (!PyArg_ParseTuple(args,(char *)"OOO:security_compute_member_raw",&obj0,&obj1,&obj2)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_member_raw" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_member_raw" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); + if (!SWIG_IsOK(res2)) { +- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_member_raw" "', argument " "2"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "security_compute_member_raw" "', argument " "2"" of type '" "security_context_t const""'"); + } + arg2 = (security_context_t)(buf2); + ecode3 = SWIG_AsVal_unsigned_SS_short(obj2, &val3); +@@ -9172,7 +9213,7 @@ fail: + + SWIGINTERN PyObject *_wrap_security_compute_user(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + char *arg2 = (char *) 0 ; + security_context_t **arg3 = (security_context_t **) 0 ; + int res1 ; +@@ -9192,7 +9233,7 @@ SWIGINTERN PyObject *_wrap_security_compute_user(PyObject *SWIGUNUSEDPARM(self), + if (!PyArg_ParseTuple(args,(char *)"OO:security_compute_user",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_user" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_user" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); +@@ -9217,7 +9258,9 @@ SWIGINTERN PyObject *_wrap_security_compute_user(PyObject *SWIGUNUSEDPARM(self), + len++; + plist = PyList_New(len); + for (i = 0; i < len; i++) { +- PyList_SetItem(plist, i, PyString_FromString((*arg3)[i])); ++ PyList_SetItem(plist, i, ++ PyBytes_FromString((*arg3)[i]) ++ ); + } + } else { + plist = PyList_New(0); +@@ -9243,7 +9286,7 @@ fail: + + SWIGINTERN PyObject *_wrap_security_compute_user_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + char *arg2 = (char *) 0 ; + security_context_t **arg3 = (security_context_t **) 0 ; + int res1 ; +@@ -9263,7 +9306,7 @@ SWIGINTERN PyObject *_wrap_security_compute_user_raw(PyObject *SWIGUNUSEDPARM(se + if (!PyArg_ParseTuple(args,(char *)"OO:security_compute_user_raw",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_user_raw" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_compute_user_raw" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); +@@ -9288,7 +9331,9 @@ SWIGINTERN PyObject *_wrap_security_compute_user_raw(PyObject *SWIGUNUSEDPARM(se + len++; + plist = PyList_New(len); + for (i = 0; i < len; i++) { +- PyList_SetItem(plist, i, PyString_FromString((*arg3)[i])); ++ PyList_SetItem(plist, i, ++ PyBytes_FromString((*arg3)[i]) ++ ); + } + } else { + plist = PyList_New(0); +@@ -9721,7 +9766,7 @@ fail: + + SWIGINTERN PyObject *_wrap_security_check_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; +@@ -9731,7 +9776,7 @@ SWIGINTERN PyObject *_wrap_security_check_context(PyObject *SWIGUNUSEDPARM(self) + if (!PyArg_ParseTuple(args,(char *)"O:security_check_context",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_check_context" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_check_context" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -9752,7 +9797,7 @@ fail: + + SWIGINTERN PyObject *_wrap_security_check_context_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; +@@ -9762,7 +9807,7 @@ SWIGINTERN PyObject *_wrap_security_check_context_raw(PyObject *SWIGUNUSEDPARM(s + if (!PyArg_ParseTuple(args,(char *)"O:security_check_context_raw",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_check_context_raw" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_check_context_raw" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -9783,7 +9828,7 @@ fail: + + SWIGINTERN PyObject *_wrap_security_canonicalize_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + security_context_t *arg2 = (security_context_t *) 0 ; + int res1 ; + char *buf1 = 0 ; +@@ -9796,7 +9841,7 @@ SWIGINTERN PyObject *_wrap_security_canonicalize_context(PyObject *SWIGUNUSEDPAR + if (!PyArg_ParseTuple(args,(char *)"O:security_canonicalize_context",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_canonicalize_context" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_canonicalize_context" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -9825,7 +9870,7 @@ fail: + + SWIGINTERN PyObject *_wrap_security_canonicalize_context_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + security_context_t *arg2 = (security_context_t *) 0 ; + int res1 ; + char *buf1 = 0 ; +@@ -9838,7 +9883,7 @@ SWIGINTERN PyObject *_wrap_security_canonicalize_context_raw(PyObject *SWIGUNUSE + if (!PyArg_ParseTuple(args,(char *)"O:security_canonicalize_context_raw",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_canonicalize_context_raw" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "security_canonicalize_context_raw" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -9994,7 +10039,7 @@ SWIGINTERN PyObject *_wrap_security_get_boolean_names(PyObject *SWIGUNUSEDPARM(s + PyObject* list = PyList_New(*arg2); + int i; + for (i = 0; i < *arg2; i++) { +- PyList_SetItem(list, i, PyString_FromString((*arg1)[i])); ++ PyList_SetItem(list, i, PyBytes_FromString((*arg1)[i])); + } + resultobj = SWIG_Python_AppendOutput(resultobj, list); + } +@@ -11129,6 +11174,19 @@ fail: + } + + ++SWIGINTERN PyObject *_wrap_selinux_sepgsql_context_path(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { ++ PyObject *resultobj = 0; ++ char *result = 0 ; ++ ++ if (!PyArg_ParseTuple(args,(char *)":selinux_sepgsql_context_path")) SWIG_fail; ++ result = (char *)selinux_sepgsql_context_path(); ++ resultobj = SWIG_FromCharPtr((const char *)result); ++ return resultobj; ++fail: ++ return NULL; ++} ++ ++ + SWIGINTERN PyObject *_wrap_selinux_contexts_path(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + char *result = 0 ; +@@ -11317,7 +11375,7 @@ fail: + + SWIGINTERN PyObject *_wrap_selinux_check_securetty_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; +@@ -11327,7 +11385,7 @@ SWIGINTERN PyObject *_wrap_selinux_check_securetty_context(PyObject *SWIGUNUSEDP + if (!PyArg_ParseTuple(args,(char *)"O:selinux_check_securetty_context",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "selinux_check_securetty_context" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "selinux_check_securetty_context" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -11412,16 +11470,20 @@ SWIGINTERN PyObject *_wrap_rpm_execcon(PyObject *SWIGUNUSEDPARM(self), PyObject + arg3 = (char**) malloc(size + 1); + + for(i = 0; i < size; i++) { +- if (!PyString_Check(PySequence_GetItem(obj2, i))) { +- PyErr_SetString(PyExc_ValueError, "Sequence must contain only strings"); ++ if (!PyBytes_Check(PySequence_GetItem(obj2, i))) { ++ PyErr_SetString(PyExc_ValueError, "Sequence must contain only bytes"); ++ + return NULL; + } ++ + } + + for(i = 0; i < size; i++) { + s = PySequence_GetItem(obj2, i); +- arg3[i] = (char*) malloc(PyString_Size(s) + 1); +- strcpy(arg3[i], PyString_AsString(s)); ++ ++ arg3[i] = (char*) malloc(PyBytes_Size(s) + 1); ++ strcpy(arg3[i], PyBytes_AsString(s)); ++ + } + arg3[size] = NULL; + } +@@ -11439,16 +11501,20 @@ SWIGINTERN PyObject *_wrap_rpm_execcon(PyObject *SWIGUNUSEDPARM(self), PyObject + arg4 = (char**) malloc(size + 1); + + for(i = 0; i < size; i++) { +- if (!PyString_Check(PySequence_GetItem(obj3, i))) { +- PyErr_SetString(PyExc_ValueError, "Sequence must contain only strings"); ++ if (!PyBytes_Check(PySequence_GetItem(obj3, i))) { ++ PyErr_SetString(PyExc_ValueError, "Sequence must contain only bytes"); ++ + return NULL; + } ++ + } + + for(i = 0; i < size; i++) { + s = PySequence_GetItem(obj3, i); +- arg4[i] = (char*) malloc(PyString_Size(s) + 1); +- strcpy(arg4[i], PyString_AsString(s)); ++ ++ arg4[i] = (char*) malloc(PyBytes_Size(s) + 1); ++ strcpy(arg4[i], PyBytes_AsString(s)); ++ + } + arg4[size] = NULL; + } +@@ -11502,7 +11568,7 @@ fail: + + SWIGINTERN PyObject *_wrap_is_context_customizable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; +@@ -11512,7 +11578,7 @@ SWIGINTERN PyObject *_wrap_is_context_customizable(PyObject *SWIGUNUSEDPARM(self + if (!PyArg_ParseTuple(args,(char *)"O:is_context_customizable",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "is_context_customizable" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "is_context_customizable" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -11533,7 +11599,7 @@ fail: + + SWIGINTERN PyObject *_wrap_selinux_trans_to_raw_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + security_context_t *arg2 = (security_context_t *) 0 ; + int res1 ; + char *buf1 = 0 ; +@@ -11546,7 +11612,7 @@ SWIGINTERN PyObject *_wrap_selinux_trans_to_raw_context(PyObject *SWIGUNUSEDPARM + if (!PyArg_ParseTuple(args,(char *)"O:selinux_trans_to_raw_context",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "selinux_trans_to_raw_context" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "selinux_trans_to_raw_context" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -11575,7 +11641,7 @@ fail: + + SWIGINTERN PyObject *_wrap_selinux_raw_to_trans_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + security_context_t *arg2 = (security_context_t *) 0 ; + int res1 ; + char *buf1 = 0 ; +@@ -11588,7 +11654,7 @@ SWIGINTERN PyObject *_wrap_selinux_raw_to_trans_context(PyObject *SWIGUNUSEDPARM + if (!PyArg_ParseTuple(args,(char *)"O:selinux_raw_to_trans_context",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "selinux_raw_to_trans_context" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "selinux_raw_to_trans_context" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -11617,7 +11683,7 @@ fail: + + SWIGINTERN PyObject *_wrap_selinux_raw_context_to_color(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; +- security_context_t arg1 = (security_context_t) 0 ; ++ security_context_t arg1 = (security_context_t) (security_context_t)0 ; + char **arg2 = (char **) 0 ; + int res1 ; + char *buf1 = 0 ; +@@ -11630,7 +11696,7 @@ SWIGINTERN PyObject *_wrap_selinux_raw_context_to_color(PyObject *SWIGUNUSEDPARM + if (!PyArg_ParseTuple(args,(char *)"O:selinux_raw_context_to_color",&obj0)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { +- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "selinux_raw_context_to_color" "', argument " "1"" of type '" "security_context_t""'"); ++ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "selinux_raw_context_to_color" "', argument " "1"" of type '" "security_context_t const""'"); + } + arg1 = (security_context_t)(buf1); + { +@@ -12172,6 +12238,7 @@ static PyMethodDef SwigMethods[] = { + { (char *)"selinux_virtual_domain_context_path", _wrap_selinux_virtual_domain_context_path, METH_VARARGS, NULL}, + { (char *)"selinux_virtual_image_context_path", _wrap_selinux_virtual_image_context_path, METH_VARARGS, NULL}, + { (char *)"selinux_x_context_path", _wrap_selinux_x_context_path, METH_VARARGS, NULL}, ++ { (char *)"selinux_sepgsql_context_path", _wrap_selinux_sepgsql_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}, +@@ -12868,15 +12935,15 @@ extern "C" { + } + } + if (ci) { +- size_t shift = (ci->ptype) - types; +- swig_type_info *ty = types_initial[shift]; +- size_t ldoc = (c - methods[i].ml_doc); +- size_t lptr = strlen(ty->name)+2*sizeof(void*)+2; +- char *ndoc = (char*)malloc(ldoc + lptr + 10); +- if (ndoc) { +- char *buff = ndoc; +- void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0; +- if (ptr) { ++ void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0; ++ if (ptr) { ++ size_t shift = (ci->ptype) - types; ++ swig_type_info *ty = types_initial[shift]; ++ size_t ldoc = (c - methods[i].ml_doc); ++ size_t lptr = strlen(ty->name)+2*sizeof(void*)+2; ++ char *ndoc = (char*)malloc(ldoc + lptr + 10); ++ if (ndoc) { ++ char *buff = ndoc; + strncpy(buff, methods[i].ml_doc, ldoc); + buff += ldoc; + strncpy(buff, "swig_ptr: ", 10); +@@ -14079,6 +14146,7 @@ SWIG_init(void) { + SWIG_Python_SetConstant(d, "SELABEL_CTX_FILE",SWIG_From_int((int)(0))); + SWIG_Python_SetConstant(d, "SELABEL_CTX_MEDIA",SWIG_From_int((int)(1))); + SWIG_Python_SetConstant(d, "SELABEL_CTX_X",SWIG_From_int((int)(2))); ++ SWIG_Python_SetConstant(d, "SELABEL_CTX_DB",SWIG_From_int((int)(3))); + SWIG_Python_SetConstant(d, "SELABEL_OPT_UNUSED",SWIG_From_int((int)(0))); + SWIG_Python_SetConstant(d, "SELABEL_OPT_VALIDATE",SWIG_From_int((int)(1))); + SWIG_Python_SetConstant(d, "SELABEL_OPT_BASEONLY",SWIG_From_int((int)(2))); +@@ -14092,6 +14160,15 @@ SWIG_init(void) { + SWIG_Python_SetConstant(d, "SELABEL_X_SELN",SWIG_From_int((int)(5))); + SWIG_Python_SetConstant(d, "SELABEL_X_POLYPROP",SWIG_From_int((int)(6))); + SWIG_Python_SetConstant(d, "SELABEL_X_POLYSELN",SWIG_From_int((int)(7))); ++ SWIG_Python_SetConstant(d, "SELABEL_DB_DATABASE",SWIG_From_int((int)(1))); ++ SWIG_Python_SetConstant(d, "SELABEL_DB_SCHEMA",SWIG_From_int((int)(2))); ++ SWIG_Python_SetConstant(d, "SELABEL_DB_TABLE",SWIG_From_int((int)(3))); ++ SWIG_Python_SetConstant(d, "SELABEL_DB_COLUMN",SWIG_From_int((int)(4))); ++ SWIG_Python_SetConstant(d, "SELABEL_DB_SEQUENCE",SWIG_From_int((int)(5))); ++ SWIG_Python_SetConstant(d, "SELABEL_DB_VIEW",SWIG_From_int((int)(6))); ++ SWIG_Python_SetConstant(d, "SELABEL_DB_PROCEDURE",SWIG_From_int((int)(7))); ++ SWIG_Python_SetConstant(d, "SELABEL_DB_BLOB",SWIG_From_int((int)(8))); ++ SWIG_Python_SetConstant(d, "SELABEL_DB_TUPLE",SWIG_From_int((int)(9))); + SWIG_Python_SetConstant(d, "SELINUX_AVD_FLAGS_PERMISSIVE",SWIG_From_int((int)(0x0001))); + SWIG_Python_SetConstant(d, "SELINUX_CB_LOG",SWIG_From_int((int)(0))); + SWIG_Python_SetConstant(d, "SELINUX_CB_AUDIT",SWIG_From_int((int)(1))); diff --git a/libselinux.spec b/libselinux.spec index 452c005..9e00c73 100644 --- a/libselinux.spec +++ b/libselinux.spec @@ -7,7 +7,7 @@ Summary: SELinux library and simple utilities Name: libselinux Version: 2.0.98 -Release: 2%{?dist} +Release: 3%{?dist} License: Public Domain Group: System Environment/Libraries Source: http://www.nsa.gov/research/selinux/%{name}-%{version}.tgz @@ -236,6 +236,9 @@ exit 0 %{ruby_sitearch}/selinux.so %changelog +* Tue Feb 1 2012 Dan Walsh - 2.0.98-3 +- Fixup selinux man page + * Tue Jan 18 2012 Dan Walsh - 2.0.98-2 - Fix Makefile to use pkg-config --cflags python3 to discover include paths