rpms/libselinux/devel libselinux-rhat.patch, 1.156, 1.157 libselinux.spec, 1.333, 1.334

Daniel J Walsh (dwalsh) fedora-extras-commits at redhat.com
Wed Jul 9 20:58:15 UTC 2008


Author: dwalsh

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

Modified Files:
	libselinux-rhat.patch libselinux.spec 
Log Message:
* Wed Jul 9 2008 Dan Walsh <dwalsh at redhat.com> - 2.0.67-4
- Add ruby support for puppet


libselinux-rhat.patch:

Index: libselinux-rhat.patch
===================================================================
RCS file: /cvs/extras/rpms/libselinux/devel/libselinux-rhat.patch,v
retrieving revision 1.156
retrieving revision 1.157
diff -u -r1.156 -r1.157
--- libselinux-rhat.patch	29 Jun 2008 12:31:00 -0000	1.156
+++ libselinux-rhat.patch	9 Jul 2008 20:57:21 -0000	1.157
@@ -1,6 +1,6 @@
 diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/freecon.3 libselinux-2.0.67/man/man3/freecon.3
 --- nsalibselinux/man/man3/freecon.3	2008-06-12 23:25:12.000000000 -0400
-+++ libselinux-2.0.67/man/man3/freecon.3	2008-06-29 08:28:37.000000000 -0400
++++ libselinux-2.0.67/man/man3/freecon.3	2008-07-09 16:52:33.000000000 -0400
 @@ -15,6 +15,11 @@
  .B freeconary
  frees the memory allocated for a context array.
@@ -15,7 +15,7 @@
  
 diff --exclude-from=exclude -N -u -r nsalibselinux/man/man8/selinuxconlist.8 libselinux-2.0.67/man/man8/selinuxconlist.8
 --- nsalibselinux/man/man8/selinuxconlist.8	1969-12-31 19:00:00.000000000 -0500
-+++ libselinux-2.0.67/man/man8/selinuxconlist.8	2008-06-29 08:27:30.000000000 -0400
++++ libselinux-2.0.67/man/man8/selinuxconlist.8	2008-07-09 16:52:33.000000000 -0400
 @@ -0,0 +1,18 @@
 +.TH "selinuxconlist" "1" "7 May 2008" "dwalsh at redhat.com" "SELinux Command Line documentation"
 +.SH "NAME"
@@ -37,7 +37,7 @@
 +secon(8), selinuxdefcon(8)
 diff --exclude-from=exclude -N -u -r nsalibselinux/man/man8/selinuxdefcon.8 libselinux-2.0.67/man/man8/selinuxdefcon.8
 --- nsalibselinux/man/man8/selinuxdefcon.8	1969-12-31 19:00:00.000000000 -0500
-+++ libselinux-2.0.67/man/man8/selinuxdefcon.8	2008-06-29 08:27:30.000000000 -0400
++++ libselinux-2.0.67/man/man8/selinuxdefcon.8	2008-07-09 16:52:33.000000000 -0400
 @@ -0,0 +1,19 @@
 +.TH "selinuxdefcon" "1" "7 May 2008" "dwalsh at redhat.com" "SELinux Command Line documentation"
 +.SH "NAME"
@@ -58,9 +58,147 @@
 +
 +.SH "SEE ALSO"
 +secon(8), selinuxconlist(8)
+diff --exclude-from=exclude -N -u -r nsalibselinux/src/Makefile libselinux-2.0.67/src/Makefile
+--- nsalibselinux/src/Makefile	2008-06-22 09:40:25.000000000 -0400
++++ libselinux-2.0.67/src/Makefile	2008-07-09 16:56:37.000000000 -0400
+@@ -7,16 +7,24 @@
+ PYINC ?= /usr/include/$(PYLIBVER)
+ PYLIB ?= /usr/lib/$(PYLIBVER)
+ PYTHONLIBDIR ?= $(LIBDIR)/$(PYLIBVER)
++RUBYLIBVER ?= $(shell ruby -e 'print RUBY_VERSION.split(".")[0..1].join(".")')
++RUBYPLATFORM ?= $(shell ruby -e 'print RUBY_PLATFORM')
++RUBYINC ?= $(LIBDIR)/ruby/$(RUBYLIBVER)/$(RUBYPLATFORM)
++RUBYINSTALL ?= $(LIBDIR)/ruby/site_ruby/$(RUBYLIBVER)/$(RUBYPLATFORM)
+ 
+ LIBVERSION = 1
+ 
+ LIBA=libselinux.a 
+ TARGET=libselinux.so
+ SWIGIF= selinuxswig_python.i
++SWIGRUBYIF= selinuxswig_ruby.i
+ SWIGCOUT= selinuxswig_wrap.c
++SWIGRUBYCOUT= selinuxswig_ruby_wrap.c
+ SWIGLOBJ:= $(patsubst %.c,%.lo,$(SWIGCOUT)) 
++SWIGRUBYLOBJ:= $(patsubst %.c,%.lo,$(SWIGRUBYCOUT)) 
+ SWIGSO=_selinux.so
+ SWIGFILES=$(SWIGSO) selinux.py 
++SWIGRUBYSO=_rubyselinux.so
+ LIBSO=$(TARGET).$(LIBVERSION)
+ AUDIT2WHYSO=audit2why.so
+ 
+@@ -29,7 +37,9 @@
+ ifeq ($(DISABLE_RPM),y)
+ 	UNUSED_SRCS+=rpm.c
+ endif
+-SRCS= $(filter-out $(UNUSED_SRCS), $(filter-out audit2why.c $(SWIGCOUT),$(wildcard *.c)))
++
++GENERATED=$(SWIGCOUT) $(SWIGRUBYCOUT)
++SRCS= $(filter-out $(UNUSED_SRCS), $(filter-out audit2why.c $(GENERATED),$(wildcard *.c)))
+ 
+ OBJS= $(patsubst %.c,%.o,$(SRCS))
+ LOBJS= $(patsubst %.c,%.lo,$(SRCS))
+@@ -44,11 +54,11 @@
+ 
+ SWIG = swig -Wall -python -o $(SWIGCOUT) -outdir ./
+ 
+-GENERATED=$(SWIGCOUT)
++SWIGRUBY = swig -Wall -ruby -o $(SWIGRUBYCOUT) -outdir ./
+ 
+ all: $(LIBA) $(LIBSO) 
+ 
+-pywrap: all $(SWIGSO) $(AUDIT2WHYSO)
++pywrap: all $(SWIGSO) $(AUDIT2WHYSO) $(SWIGRUBYSO) 
+ 
+ $(LIBA):  $(OBJS)
+ 	$(AR) rcs $@ $^
+@@ -57,8 +67,14 @@
+ $(SWIGLOBJ): $(SWIGCOUT)
+ 	$(CC) $(filter-out -Werror,$(CFLAGS)) -I$(PYINC) -fPIC -DSHARED -c -o $@ $<
+ 
++$(SWIGRUBYLOBJ): $(SWIGRUBYCOUT)
++	$(CC) $(filter-out -Werror,$(CFLAGS)) -I$(RUBYINC) -fPIC -DSHARED -c -o $@ $<
++
+ $(SWIGSO): $(SWIGLOBJ)
+-	$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $< -L. -lselinux -L$(LIBDIR) -Wl,-soname,$@
++	$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -L. -lselinux -L$(LIBDIR) -Wl,-soname,$@
++
++$(SWIGRUBYSO): $(SWIGRUBYLOBJ)
++	$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -L. -lselinux -L$(LIBDIR) -Wl,-soname,$@
+ 
+ $(LIBSO): $(LOBJS)
+ 	$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -ldl -L$(LIBDIR) -Wl,-soname,$(LIBSO),-z,defs,-z,relro
+@@ -79,6 +95,9 @@
+ $(SWIGCOUT): $(SWIGIF)
+ 	$(SWIG) $^
+ 
++$(SWIGRUBYCOUT): $(SWIGRUBYIF)
++	$(SWIGRUBY) $^
++
+ swigify: $(SWIGIF)
+ 	$(SWIG) $^
+ 
+@@ -95,6 +114,9 @@
+ 	install -m 755 $(AUDIT2WHYSO) $(PYTHONLIBDIR)/site-packages/selinux
+ 	install -m 644  selinux.py $(PYTHONLIBDIR)/site-packages/selinux/__init__.py
+ 
++	test -d $(RUBYINSTALL) || install -m 755 -d $(RUBYINSTALL) 
++	install -m 755 $(SWIGRUBYSO) $(RUBYINSTALL)/selinux.so
++
+ relabel:
+ 	/sbin/restorecon $(SHLIBDIR)/$(LIBSO)
+ 
+@@ -102,7 +124,7 @@
+ 	-rm -f $(OBJS) $(LOBJS) $(LIBA) $(LIBSO) $(SWIGLOBJ) $(SWIGSO) $(TARGET) $(AUDIT2WHYSO) *.o *.lo *~
+ 
+ distclean: clean
+-	rm -f $(SWIGCOUT) $(SWIGFILES)
++	rm -f $(GENERATED) $(SWIGFILES)
+ 
+ indent:
+ 	../../scripts/Lindent $(filter-out $(GENERATED),$(wildcard *.[ch]))
+diff --exclude-from=exclude -N -u -r nsalibselinux/src/audit2why.c libselinux-2.0.67/src/audit2why.c
+--- nsalibselinux/src/audit2why.c	2008-06-12 23:25:14.000000000 -0400
++++ libselinux-2.0.67/src/audit2why.c	2008-07-09 16:52:33.000000000 -0400
+@@ -55,7 +55,7 @@
+ 	return 0;
+ }
+ 
+-static int check_booleans(struct avc_t *avc, struct boolean_t **bools)
++static int check_booleans(struct boolean_t **bools)
+ {
+ 	char errormsg[PATH_MAX];
+ 	struct sepol_av_decision avd;
+@@ -376,7 +376,7 @@
+ 		avc->tsid = tsid;
+ 		avc->tclass = tclass;
+ 		avc->av = av;
+-		if (check_booleans(avc, &bools) == 0) {
++		if (check_booleans(&bools) == 0) {
+ 			if (av & ~avd.auditdeny) {
+ 				RETURN(DONTAUDIT)
+ 			} else {
+@@ -390,15 +390,15 @@
+ 				len++; b++;
+ 			}
+ 			b = bools;
+-			PyObject *boollist = PyTuple_New(len);
++			PyObject *outboollist = PyTuple_New(len);
+ 			len=0;
+ 			while(b->name) {
+ 				PyObject *bool = Py_BuildValue("(si)", b->name, b->active);
+-				PyTuple_SetItem(boollist, len++, bool);
++				PyTuple_SetItem(outboollist, len++, bool);
+ 				b++;
+ 			}
+ 			free(bools);
+-			PyTuple_SetItem(result, 1, boollist);
++			PyTuple_SetItem(result, 1, outboollist);
+ 			return result;
+ 		}
+ 	}
 diff --exclude-from=exclude -N -u -r nsalibselinux/src/matchpathcon.c libselinux-2.0.67/src/matchpathcon.c
 --- nsalibselinux/src/matchpathcon.c	2008-06-12 23:25:14.000000000 -0400
-+++ libselinux-2.0.67/src/matchpathcon.c	2008-06-29 08:27:30.000000000 -0400
++++ libselinux-2.0.67/src/matchpathcon.c	2008-07-09 16:52:33.000000000 -0400
 @@ -2,6 +2,7 @@
  #include <string.h>
  #include <errno.h>
@@ -78,3 +216,154 @@
  	va_end(ap);
  }
  
+diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinuxswig_ruby.i libselinux-2.0.67/src/selinuxswig_ruby.i
+--- nsalibselinux/src/selinuxswig_ruby.i	1969-12-31 19:00:00.000000000 -0500
++++ libselinux-2.0.67/src/selinuxswig_ruby.i	2008-07-09 16:52:33.000000000 -0400
+@@ -0,0 +1,147 @@
++/* Author: James Athey
++ */
++
++%module selinux
++%{
++	#include "selinux/selinux.h"
++%}
++
++/* security_get_boolean_names() typemap */
++/*
++%typemap(argout) (char ***names, int *len) {
++	PyObject* list = PyList_New(*$2);
++	int i;
++	for (i = 0; i < *$2; i++) {
++		PyList_SetItem(list, i, PyString_FromString((*$1)[i]));
++	}
++	$result = SWIG_Python_AppendOutput($result, list);
++}
++*/
++/* return a sid along with the result */
++%typemap(argout) (security_id_t * sid) {
++	if (*$1) {
++                %append_output(SWIG_NewPointerObj(*$1, $descriptor(security_id_t), 0));
++	} 
++/*	else {
++		Py_INCREF(Py_None);
++		%append_output(Py_None);
++	}
++*/
++}
++
++%typemap(in,numinputs=0) security_id_t *(security_id_t temp) {
++  $1 = &temp;
++}
++
++/* Makes security_compute_user() return a Python list of contexts */
++/*
++%typemap(argout) (security_context_t **con) {
++	PyObject* plist;
++	int i, len = 0;
++	
++	if (*$1) {
++		while((*$1)[len])
++			len++;
++		plist = PyList_New(len);
++		for (i = 0; i < len; i++) {
++			PyList_SetItem(plist, i, PyString_FromString((*$1)[i]));
++		}
++	} else {
++		plist = PyList_New(0);
++	}
++
++	$result = SWIG_Python_AppendOutput($result, plist);
++}
++*/
++/* Makes functions in get_context_list.h return a Python list of contexts */
++
++#ifdef fixme
++%typemap(argout) (security_context_t **list) {
++	PyObject* plist;
++	int i;
++	
++	if (*$1) {
++		plist = PyList_New(result);
++		for (i = 0; i < result; i++) {
++			PyList_SetItem(plist, i, PyString_FromString((*$1)[i]));
++		}
++	} else {
++		plist = PyList_New(0);
++	}
++	/* Only return the Python list, don't need to return the length anymore */
++	$result = plist;
++}
++#endif
++
++%typemap(in,noblock=1,numinputs=0) security_context_t * (security_context_t temp = 0) {
++	$1 = &temp;
++}
++%typemap(freearg,match="in") security_context_t * "";
++%typemap(argout,noblock=1) security_context_t * {
++	if (*$1) {
++		%append_output(SWIG_FromCharPtr(*$1));
++		freecon(*$1);
++	}
++/*
++	else {
++		Py_INCREF(Py_None);
++		%append_output(Py_None);
++	}
++*/
++}
++
++%typemap(in,noblock=1,numinputs=0) char ** (char * temp = 0) {
++	$1 = &temp;
++}
++%typemap(freearg,match="in") char ** "";
++%typemap(argout,noblock=1) char ** {
++	if (*$1) {
++		%append_output(SWIG_FromCharPtr(*$1));
++		free(*$1);
++	}
++/*
++	else {
++		Py_INCREF(Py_None);
++		%append_output(Py_None);
++	}
++*/
++}
++/*
++%typemap(in) char * const [] {
++	int i, size;
++	PyObject * s;
++
++	if (!PySequence_Check($input)) {
++		PyErr_SetString(PyExc_ValueError, "Expected a sequence");
++		return NULL;
++	}
++
++	size = PySequence_Size($input);
++	
++	$1 = (char**) malloc(size + 1);
++	for(i = 0; i < size; i++) {
++		if (!PyString_Check(PySequence_GetItem($input, i))) {
++			PyErr_SetString(PyExc_ValueError, "Sequence must contain only strings");
++			return NULL;
++		}
++	}
++		
++	for(i = 0; i < size; i++) {
++		s = PySequence_GetItem($input, i);
++		$1[i] = (char*) malloc(PyString_Size(s) + 1);
++		strcpy($1[i], PyString_AsString(s));
++	}
++	$1[size] = NULL;
++}
++*/
++
++%typemap(freearg,match="in") char * const [] {
++	int i = 0;
++	while($1[i]) {
++		free($1[i]);
++		i++;
++	}
++	free($1);
++}
++
++%include "selinuxswig.i"


Index: libselinux.spec
===================================================================
RCS file: /cvs/extras/rpms/libselinux/devel/libselinux.spec,v
retrieving revision 1.333
retrieving revision 1.334
diff -u -r1.333 -r1.334
--- libselinux.spec	8 Jul 2008 12:07:38 -0000	1.333
+++ libselinux.spec	9 Jul 2008 20:57:21 -0000	1.334
@@ -1,17 +1,18 @@
+%define ruby_sitearch %(ruby -rrbconfig -e "puts Config::CONFIG['sitearchdir']")
 %define libsepolver 2.0.32-1
 %{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
 
 Summary: SELinux library and simple utilities
 Name: libselinux
 Version: 2.0.67
-Release: 3%{?dist}
+Release: 4%{?dist}
 License: Public Domain
 Group: System Environment/Libraries
 Source: http://www.nsa.gov/selinux/archives/%{name}-%{version}.tgz
 Patch: libselinux-rhat.patch
 URL: http://www.nsa.gov/selinux
 
-BuildRequires: python-devel libsepol-static >= %{libsepolver} swig
+BuildRequires: python-devel ruby-devel ruby libsepol-static >= %{libsepolver} swig
 Requires: libsepol >= %{libsepolver}
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
@@ -39,6 +40,15 @@
 The libselinux-python package contains the python bindings for developing 
 SELinux applications. 
 
+%package ruby
+Summary: SELinux ruby bindings for libselinux
+Group: Development/Libraries
+Requires: libselinux = %{version}-%{release} 
+
+%description ruby
+The libselinux-ruby package contains the ruby bindings for developing 
+SELinux applications. 
+
 %package devel
 Summary: Header files and libraries used to build SELinux
 Group: Development/Libraries
@@ -135,7 +145,14 @@
 %dir %{python_sitearch}/selinux
 %{python_sitearch}/selinux/*
 
+%files ruby
+%defattr(-,root,root,-)
+%{ruby_sitearch}/selinux.so
+
 %changelog
+* Wed Jul 9 2008 Dan Walsh <dwalsh at redhat.com> - 2.0.67-4
+- Add ruby support for puppet
+
 * Tue Jul 8 2008 Dan Walsh <dwalsh at redhat.com> - 2.0.67-3
 - Rebuild for new libsepol
 




More information about the scm-commits mailing list