rpms/libselinux/devel libselinux-rhat.patch, 1.113, 1.114 libselinux.spec, 1.257, 1.258

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Thu Apr 5 15:57:37 UTC 2007


Author: dwalsh

Update of /cvs/dist/rpms/libselinux/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv18936

Modified Files:
	libselinux-rhat.patch libselinux.spec 
Log Message:
* Thu Apr 5 2007 Dan Walsh <dwalsh at redhat.com> - 2.0.9-2
- Make rpm_exec swig work


libselinux-rhat.patch:
 src/selinuxswig.i      |   27 +++++++++++++++++++-
 src/selinuxswig_wrap.c |   64 +++++++++++++++++++++++++++++++++++--------------
 utils/getsebool.c      |   22 ++++++++++------
 3 files changed, 87 insertions(+), 26 deletions(-)

Index: libselinux-rhat.patch
===================================================================
RCS file: /cvs/dist/rpms/libselinux/devel/libselinux-rhat.patch,v
retrieving revision 1.113
retrieving revision 1.114
diff -u -r1.113 -r1.114
--- libselinux-rhat.patch	2 Apr 2007 19:14:28 -0000	1.113
+++ libselinux-rhat.patch	5 Apr 2007 15:57:35 -0000	1.114
@@ -1,6 +1,132 @@
-diff --exclude-from=exclude -N -u -r nsalibselinux/utils/getsebool.c libselinux-2.0.7/utils/getsebool.c
+diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinuxswig.i libselinux-2.0.9/src/selinuxswig.i
+--- nsalibselinux/src/selinuxswig.i	2007-02-22 08:53:23.000000000 -0500
++++ libselinux-2.0.9/src/selinuxswig.i	2007-04-05 11:53:17.000000000 -0400
+@@ -115,9 +115,34 @@
+ extern const char *selinux_path(void);
+ extern int selinux_check_passwd_access(access_vector_t requested);
+ extern int checkPasswdAccess(access_vector_t requested);
++
++// This tells SWIG to treat char ** as a special case
++%typemap(in) char ** {
++  /* Check if is a list */
++  if (PyList_Check($input)) {
++    int size = PyList_Size($input);
++    int i = 0;
++    $1 = (char **) malloc((size+1)*sizeof(char *));
++    for (i = 0; i < size; i++) {
++      PyObject *o = PyList_GetItem($input,i);
++      if (PyString_Check(o))
++	$1[i] = PyString_AsString(PyList_GetItem($input,i));
++      else {
++	PyErr_SetString(PyExc_TypeError,"list must contain strings");
++	free($1);
++	return NULL;
++      }
++    }
++    $1[i] = 0;
++  } else {
++    PyErr_SetString(PyExc_TypeError,"not a list");
++    return NULL;
++  }
++}
++
+ extern int rpm_execcon(unsigned int verified, 
+ 		       const char *filename, 
+-		       char *const argv[], char *const envp[]);
++		       char **, char **);
+ 
+ extern int is_context_customizable (security_context_t scontext);
+ 
+diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinuxswig_wrap.c libselinux-2.0.9/src/selinuxswig_wrap.c
+--- nsalibselinux/src/selinuxswig_wrap.c	2007-02-22 08:53:23.000000000 -0500
++++ libselinux-2.0.9/src/selinuxswig_wrap.c	2007-04-05 11:45:04.000000000 -0400
+@@ -4145,18 +4145,14 @@
+   PyObject *resultobj = 0;
+   unsigned int arg1 ;
+   char *arg2 = (char *) 0 ;
+-  char **arg3 ;
+-  char **arg4 ;
++  char **arg3 = (char **) 0 ;
++  char **arg4 = (char **) 0 ;
+   int result;
+   unsigned int val1 ;
+   int ecode1 = 0 ;
+   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 ;
+@@ -4173,17 +4169,51 @@
+     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "rpm_execcon" "', argument " "2"" of type '" "char const *""'");
+   }
+   arg2 = (char *)(buf2);
+-  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 *const []""'"); 
+-  } 
+-  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 *const []""'"); 
+-  } 
+-  arg4 = (char **)(argp4);
+-  result = (int)rpm_execcon(arg1,(char const *)arg2,(char *const (*))arg3,(char *const (*))arg4);
++  {
++    /* Check if is a list */
++    if (PyList_Check(obj2)) {
++      int size = PyList_Size(obj2);
++      int i = 0;
++      arg3 = (char **) malloc((size+1)*sizeof(char *));
++      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 *));
++      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;
++    }
++  }
++  result = (int)rpm_execcon(arg1,(char const *)arg2,arg3,arg4);
+   resultobj = SWIG_From_int((int)(result));
+   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+   return resultobj;
+diff --exclude-from=exclude -N -u -r nsalibselinux/utils/getsebool.c libselinux-2.0.9/utils/getsebool.c
 --- nsalibselinux/utils/getsebool.c	2006-11-16 17:15:17.000000000 -0500
-+++ libselinux-2.0.7/utils/getsebool.c	2007-03-22 16:48:06.000000000 -0400
++++ libselinux-2.0.9/utils/getsebool.c	2007-04-05 10:53:29.000000000 -0400
 @@ -72,17 +72,23 @@
  	for (i = 0; i < len; i++) {
  		active = security_get_boolean_active(names[i]);


Index: libselinux.spec
===================================================================
RCS file: /cvs/dist/rpms/libselinux/devel/libselinux.spec,v
retrieving revision 1.257
retrieving revision 1.258
diff -u -r1.257 -r1.258
--- libselinux.spec	2 Apr 2007 19:14:28 -0000	1.257
+++ libselinux.spec	5 Apr 2007 15:57:35 -0000	1.258
@@ -2,7 +2,7 @@
 Summary: SELinux library and simple utilities
 Name: libselinux
 Version: 2.0.9
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: Public domain (uncopyrighted)
 Group: System Environment/Libraries
 Source: http://www.nsa.gov/selinux/archives/%{name}-%{version}.tgz
@@ -121,6 +121,9 @@
 %{_libdir}/python*/site-packages/selinux.py*
 
 %changelog
+* Thu Apr 5 2007 Dan Walsh <dwalsh at redhat.com> - 2.0.9-2
+- Make rpm_exec swig work
+
 * Tue Mar 27 2007 Dan Walsh <dwalsh at redhat.com> - 2.0.9-1
 - Upgrade to upstream
 	* Merged class/av string conversion and avc_compute_create patch from Eamon Walsh.




More information about the fedora-cvs-commits mailing list