rpms/policycoreutils/devel .cvsignore, 1.162, 1.163 policycoreutils-rhat.patch, 1.326, 1.327 policycoreutils.spec, 1.458, 1.459 sources, 1.167, 1.168

Daniel J Walsh (dwalsh) fedora-extras-commits at redhat.com
Fri Oct 5 17:17:09 UTC 2007


Author: dwalsh

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

Modified Files:
	.cvsignore policycoreutils-rhat.patch policycoreutils.spec 
	sources 
Log Message:
* Fri Oct 5 2007 Dan Walsh <dwalsh at redhat.com> 2.0.28-1
- Update to upstream
	* Update semodule man page for -D from Dan Walsh.
	* Add boolean, locallist, deleteall, and store support to semanage from Dan Walsh.



Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/policycoreutils/devel/.cvsignore,v
retrieving revision 1.162
retrieving revision 1.163
diff -u -r1.162 -r1.163
--- .cvsignore	27 Sep 2007 15:24:00 -0000	1.162
+++ .cvsignore	5 Oct 2007 17:16:35 -0000	1.163
@@ -160,3 +160,4 @@
 sepolgen-1.0.10.tgz
 policycoreutils-2.0.26.tgz
 policycoreutils-2.0.27.tgz
+policycoreutils-2.0.28.tgz

policycoreutils-rhat.patch:

Index: policycoreutils-rhat.patch
===================================================================
RCS file: /cvs/extras/rpms/policycoreutils/devel/policycoreutils-rhat.patch,v
retrieving revision 1.326
retrieving revision 1.327
diff -u -r1.326 -r1.327
--- policycoreutils-rhat.patch	4 Oct 2007 14:30:30 -0000	1.326
+++ policycoreutils-rhat.patch	5 Oct 2007 17:16:35 -0000	1.327
@@ -38,10 +38,10 @@
  	close(fd);
 diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/scripts/genhomedircon policycoreutils-2.0.27/scripts/genhomedircon
 --- nsapolicycoreutils/scripts/genhomedircon	1969-12-31 19:00:00.000000000 -0500
-+++ policycoreutils-2.0.27/scripts/genhomedircon	2007-10-04 09:47:05.000000000 -0400
++++ policycoreutils-2.0.27/scripts/genhomedircon	2007-10-05 13:09:32.000000000 -0400
 @@ -0,0 +1,2 @@
 +#!/bin/sh
-+semodule -Bn
++/usr/sbin/semodule -Bn
 diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/scripts/Makefile policycoreutils-2.0.27/scripts/Makefile
 --- nsapolicycoreutils/scripts/Makefile	2007-08-23 16:52:26.000000000 -0400
 +++ policycoreutils-2.0.27/scripts/Makefile	2007-10-04 10:25:50.000000000 -0400
@@ -60,668 +60,6 @@
  	-mkdir -p $(MANDIR)/man8
  	install -m 644 fixfiles.8 $(MANDIR)/man8/
  	install -m 644 chcat.8 $(MANDIR)/man8/
-diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/semanage/semanage policycoreutils-2.0.27/semanage/semanage
---- nsapolicycoreutils/semanage/semanage	2007-08-23 16:52:26.000000000 -0400
-+++ policycoreutils-2.0.27/semanage/semanage	2007-10-03 11:25:41.000000000 -0400
-@@ -48,13 +48,14 @@
- 
- 	def usage(message = ""):
- 		print _('\
--semanage {login|user|port|interface|fcontext|translation} -l [-n] \n\
-+semanage {boolean|login|user|port|interface|fcontext|translation} -{l|D} [-n] \n\
- semanage login -{a|d|m} [-sr] login_name\n\
- semanage user -{a|d|m} [-LrRP] selinux_name\n\
- semanage port -{a|d|m} [-tr] [ -p protocol ] port | port_range\n\
- semanage interface -{a|d|m} [-tr] interface_spec\n\
- semanage fcontext -{a|d|m} [-frst] file_spec\n\
- semanage translation -{a|d|m} [-T] level\n\n\
-+semanage boolean -{d|m} boolean\n\n\
- \
- Primary Options:\n\
- \
-@@ -62,10 +63,12 @@
- 	-d, --delete     Delete a OBJECT record NAME\n\
- 	-m, --modify     Modify a OBJECT record NAME\n\
- 	-l, --list       List the OBJECTS\n\n\
-+	-C, --locallist  List OBJECTS local customizations\n\n\
-+	-D, --deleteall  Remove all OBJECTS local customizations\n\
- \
- 	-h, --help       Display this message\n\
--	-n, --noheading  Do not print heading when listing OBJECTS\n\n\
--\
-+	-n, --noheading  Do not print heading when listing OBJECTS\n\
-+        -S, --store      Select and alternate SELinux store to manage\n\n\
- Object-specific Options (see above):\n\
- 	-f, --ftype      File Type of OBJECT \n\
- 		"" (all files) \n\
-@@ -98,7 +101,7 @@
- 
- 	def get_options():
- 		valid_option={}
--		valid_everyone=[ '-a', '--add', '-d', '--delete', '-m', '--modify', '-l', '--list', '-h', '--help', '-n', '--noheading' ]
-+		valid_everyone=[ '-a', '--add', '-d', '--delete', '-m', '--modify', '-l', '--list', '-h', '--help', '-n', '--noheading', '-C', '--locallist', '-D', '--deleteall', '-S', '--store' ]
- 		valid_option["login"] = []
- 		valid_option["login"] += valid_everyone + [ '-s', '--seuser', '-r', '--range']
- 		valid_option["user"] = []
-@@ -111,6 +114,8 @@
- 		valid_option["fcontext"] += valid_everyone + [ '-f', '--ftype', '-s', '--seuser',  '-t', '--type', '-r', '--range'] 
- 		valid_option["translation"] = []
- 		valid_option["translation"] += valid_everyone + [ '-T', '--trans' ] 
-+		valid_option["boolean"] = []
-+		valid_option["boolean"] += valid_everyone 
- 		return valid_option
- 
- 	#
-@@ -134,7 +139,10 @@
- 		add = 0
- 		modify = 0
- 		delete = 0
-+		deleteall = 0
- 		list = 0
-+		locallist = 0
-+                store = ""
- 		if len(sys.argv) < 3:
- 			usage(_("Requires 2 or more arguments"))
- 			
-@@ -146,16 +154,19 @@
- 		args = sys.argv[2:]
- 
- 		gopts, cmds = getopt.getopt(args,
--					    'adf:lhmnp:s:R:L:r:t:T:P:',
-+					    'adf:lhmnp:s:CDR:L:r:t:T:P:S:',
- 					    ['add',
- 					     'delete',
-+					     'deleteall',
- 					     'ftype=',
- 					     'help',
- 					     'list', 
- 					     'modify',
- 					     'noheading',
-+					     'localist',
- 					     'proto=',
- 					     'seuser=',
-+					     'store=',
- 					     'range=',
- 					     'level=',
- 					     'roles=',
-@@ -177,6 +188,10 @@
- 				if modify or add:
- 					usage()
- 				delete = 1
-+			if o == "-D"  or o == "--deleteall":
-+				if modify:
-+                                       usage()
-+				deleteall = 1
- 			if o == "-f"  or o == "--ftype":
- 				ftype=a
- 			if o == "-h" or o == "--help":
-@@ -185,11 +200,17 @@
- 			if o == "-n" or o == "--noheading":
- 				heading=0
- 
-+			if o == "-C" or o == "--locallist":
-+				locallist=1
-+
- 			if o == "-m"or o == "--modify":
- 				if delete or add:
- 					usage()
- 				modify = 1
- 				
-+			if o == "-S" or o == '--store':
-+				store = a
-+
- 			if o == "-r" or o == '--range':
- 				if is_mls_enabled == 0:
- 					errorExit(_("range not supported on Non MLS machines"))
-@@ -222,31 +243,38 @@
- 				setrans = a
- 
- 		if object == "login":
--			OBJECT = seobject.loginRecords()
-+			OBJECT = seobject.loginRecords(store)
- 
- 		if object == "user":
--			OBJECT = seobject.seluserRecords()
-+			OBJECT = seobject.seluserRecords(store)
- 
- 		if object == "port":
--			OBJECT = seobject.portRecords()
-+			OBJECT = seobject.portRecords(store)
- 		
- 		if object == "interface":
--			OBJECT = seobject.interfaceRecords()
-+			OBJECT = seobject.interfaceRecords(store)
- 		
- 		if object == "fcontext":
--			OBJECT = seobject.fcontextRecords()
-+			OBJECT = seobject.fcontextRecords(store)
-+		
-+		if object == "boolean":
-+			OBJECT = seobject.booleanRecords(store)
- 		
- 		if object == "translation":
- 			OBJECT = seobject.setransRecords()
- 		
- 		if list:
--			OBJECT.list(heading)
-+			OBJECT.list(heading, locallist)
-+			sys.exit(0);
-+			
-+		if deleteall:
-+			OBJECT.deleteall()
- 			sys.exit(0);
- 			
- 		if len(cmds) != 1:
- 			usage()
--
--		target = cmds[0]
-+                        
-+                target = cmds[0]
- 
- 		if add:
- 			if object == "login":
-@@ -274,6 +302,9 @@
- 			sys.exit(0);
- 			
- 		if modify:
-+			if object == "boolean":
-+				OBJECT.modify(target, value)
-+
- 			if object == "login":
- 				OBJECT.modify(target, seuser, serange)
- 
-diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/semanage/seobject.py policycoreutils-2.0.27/semanage/seobject.py
---- nsapolicycoreutils/semanage/seobject.py	2007-07-16 14:20:41.000000000 -0400
-+++ policycoreutils-2.0.27/semanage/seobject.py	2007-10-03 11:24:40.000000000 -0400
-@@ -170,7 +170,7 @@
- 			rec += "%s=%s\n" %  (k, self.ddict[k])
- 		return rec
- 	
--	def list(self,heading = 1):
-+	def list(self,heading = 1, locallist = 0):
- 		if heading:
- 			print "\n%-25s %s\n" % (_("Level"), _("Translation"))
- 		keys = self.ddict.keys()
-@@ -210,13 +210,17 @@
- 		os.write(fd, self.out())
- 		os.close(fd)
- 		os.rename(newfilename, self.filename)
-+                os.system("/sbin/service mcstrans reload > /dev/null")
-                 
- class semanageRecords:
--	def __init__(self):
-+	def __init__(self, store):
- 		self.sh = semanage_handle_create()
- 		if not self.sh:
- 		       raise ValueError(_("Could not create semanage handle"))
- 		
-+                if store != "":
-+                       semanage_select_store(self.sh, store, SEMANAGE_CON_DIRECT);
-+
- 		self.semanaged = semanage_is_managed(self.sh)
- 
- 		if not self.semanaged:
-@@ -234,8 +238,8 @@
- 			raise ValueError(_("Could not establish semanage connection"))
- 
- class loginRecords(semanageRecords):
--	def __init__(self):
--		semanageRecords.__init__(self)
-+	def __init__(self, store = ""):
-+		semanageRecords.__init__(self, store)
- 
- 	def add(self, name, sename, serange):
- 		if is_mls_enabled == 1:
-@@ -389,10 +393,12 @@
- 		mylog.log(1,"delete SELinux user mapping", name);
- 		semanage_seuser_key_free(k)
- 
--		
--	def get_all(self):
-+	def get_all(self, locallist = 0):
- 		ddict = {}
--		(rc, self.ulist) = semanage_seuser_list(self.sh)
-+                if locallist:
-+                       (rc, self.ulist) = semanage_seuser_list_local(self.sh)
-+                else:
-+                       (rc, self.ulist) = semanage_seuser_list(self.sh)
- 		if rc < 0:
- 			raise ValueError(_("Could not list login mappings"))
- 
-@@ -401,8 +407,8 @@
- 			ddict[name] = (semanage_seuser_get_sename(u), semanage_seuser_get_mlsrange(u))
- 		return ddict
- 
--	def list(self,heading = 1):
--		ddict = self.get_all()
-+	def list(self,heading = 1, locallist = 0):
-+		ddict = self.get_all(locallist)
- 		keys = ddict.keys()
- 		keys.sort()
- 		if is_mls_enabled == 1:
-@@ -417,8 +423,8 @@
- 				print "%-25s %-25s" % (k, ddict[k][0])
- 
- class seluserRecords(semanageRecords):
--	def __init__(self):
--		semanageRecords.__init__(self)
-+	def __init__(self, store = ""):
-+		semanageRecords.__init__(self, store)
- 
- 	def add(self, name, roles, selevel, serange, prefix):
- 		if is_mls_enabled == 1:
-@@ -601,9 +607,12 @@
- 		mylog.log(1,"delete SELinux user record", name)
- 		semanage_user_key_free(k)		
- 
--	def get_all(self):
-+	def get_all(self, locallist = 0):
- 		ddict = {}
--		(rc, self.ulist) = semanage_user_list(self.sh)
-+                if locallist:
-+                       (rc, self.ulist) = semanage_user_list_local(self.sh)
-+                else:
-+                       (rc, self.ulist) = semanage_user_list(self.sh)
- 		if rc < 0:
- 			raise ValueError(_("Could not list SELinux users"))
- 
-@@ -618,8 +627,8 @@
- 
- 		return ddict
- 
--	def list(self, heading = 1):
--		ddict = self.get_all()
-+	def list(self, heading = 1, locallist = 0):
-+		ddict = self.get_all(locallist)
- 		keys = ddict.keys()
- 		keys.sort()
- 		if is_mls_enabled == 1:
-@@ -635,8 +644,8 @@
- 				print "%-15s %s" % (k, ddict[k][3])
- 
- class portRecords(semanageRecords):
--	def __init__(self):
--		semanageRecords.__init__(self)
-+	def __init__(self, store = ""):
-+		semanageRecords.__init__(self, store)
- 
- 	def __genkey(self, port, proto):
- 		if proto == "tcp":
-@@ -795,9 +804,12 @@
- 		
- 		semanage_port_key_free(k)
- 
--	def get_all(self):
-+	def get_all(self, locallist = 0):
- 		ddict = {}
--		(rc, self.plist) = semanage_port_list(self.sh)
-+                if locallist:
-+                       (rc, self.plist) = semanage_port_list_local(self.sh)
-+                else:
-+                       (rc, self.plist) = semanage_port_list(self.sh)
- 		if rc < 0:
- 			raise ValueError(_("Could not list ports"))
- 
-@@ -814,9 +826,12 @@
- 			ddict[(low, high)] = (ctype, proto_str, level)
- 		return ddict
- 
--	def get_all_by_type(self):
-+	def get_all_by_type(self, locallist = 0):
- 		ddict = {}
--		(rc, self.plist) = semanage_port_list(self.sh)
-+                if locallist:
-+                       (rc, self.plist) = semanage_port_list_local(self.sh)
-+                else:
-+                       (rc, self.plist) = semanage_port_list(self.sh)
- 		if rc < 0:
- 			raise ValueError(_("Could not list ports"))
- 
-@@ -837,10 +852,10 @@
- 				ddict[(ctype,proto_str)].append("%d-%d" % (low, high))
- 		return ddict
- 
--	def list(self, heading = 1):
-+	def list(self, heading = 1, locallist = 0):
- 		if heading:
- 			print "%-30s %-8s %s\n" % (_("SELinux Port Type"), _("Proto"), _("Port Number"))
--		ddict = self.get_all_by_type()
-+		ddict = self.get_all_by_type(locallist)
- 		keys = ddict.keys()
- 		keys.sort()
- 		for i in keys:
-@@ -851,8 +866,8 @@
- 			print rec
- 
- class interfaceRecords(semanageRecords):
--	def __init__(self):
--		semanageRecords.__init__(self)
-+	def __init__(self, store = ""):
-+		semanageRecords.__init__(self, store)
- 
- 	def add(self, interface, serange, ctype):
- 		if is_mls_enabled == 1:
-@@ -995,9 +1010,12 @@
- 		
- 		semanage_iface_key_free(k)
- 
--	def get_all(self):
-+	def get_all(self, locallist = 0):
- 		ddict = {}
--		(rc, self.ilist) = semanage_iface_list(self.sh)
-+                if locallist:
-+                       (rc, self.ilist) = semanage_iface_list_local(self.sh)
-+                else:
-+                       (rc, self.ilist) = semanage_iface_list(self.sh)
- 		if rc < 0:
- 			raise ValueError(_("Could not list interfaces"))
- 
-@@ -1007,10 +1025,10 @@
- 
- 		return ddict
- 			
--	def list(self, heading = 1):
-+	def list(self, heading = 1, locallist = 0):
- 		if heading:
- 			print "%-30s %s\n" % (_("SELinux Interface"), _("Context"))
--		ddict = self.get_all()
-+		ddict = self.get_all(locallist)
- 		keys = ddict.keys()
- 		keys.sort()
- 		if is_mls_enabled:
-@@ -1021,17 +1039,34 @@
- 				print "%-30s %s:%s:%s " % (k,ddict[k][0], ddict[k][1],ddict[k][2])
- 			
- class fcontextRecords(semanageRecords):
--	def __init__(self):
--		semanageRecords.__init__(self)
--		
--	def add(self, target, type, ftype = "", serange = "", seuser = "system_u"):
-+	def __init__(self, store = ""):
-+		semanageRecords.__init__(self, store)
-+
-+        def createcon(self, target, seuser = "system_u"):
-+                (rc, con) = semanage_context_create(self.sh)
-+                if rc < 0:
-+                       raise ValueError(_("Could not create context for %s") % target)
- 		if seuser == "":
- 			seuser = "system_u"
-+
-+                rc = semanage_context_set_user(self.sh, con, seuser)
-+                if rc < 0:
-+                       raise ValueError(_("Could not set user in file context for %s") % target)
-+		
-+                rc = semanage_context_set_role(self.sh, con, "object_r")
-+                if rc < 0:
-+                       raise ValueError(_("Could not set role in file context for %s") % target)
-+
- 		if is_mls_enabled == 1:
--			if serange == "":
--				serange = "s0"
--			else:
--				serange = untranslate(serange)
-+                       rc = semanage_context_set_mls(self.sh, con, "s0")
-+                       if rc < 0:
-+                              raise ValueError(_("Could not set mls fields in file context for %s") % target)
-+
-+                return con
-+               
-+	def add(self, target, type, ftype = "", serange = "", seuser = "system_u"):
-+		if is_mls_enabled == 1:
-+                       serange = untranslate(serange)
- 			
- 		if type == "":
- 			raise ValueError(_("SELinux Type is required"))
-@@ -1051,33 +1086,23 @@
- 			raise ValueError(_("Could not create file context for %s") % target)
- 		
- 		rc = semanage_fcontext_set_expr(self.sh, fcontext, target)
--		(rc, con) = semanage_context_create(self.sh)
--		if rc < 0:
--			raise ValueError(_("Could not create context for %s") % target)
--
--		rc = semanage_context_set_user(self.sh, con, seuser)
--		if rc < 0:
--			raise ValueError(_("Could not set user in file context for %s") % target)
--		
--		rc = semanage_context_set_role(self.sh, con, "object_r")
--		if rc < 0:
--			raise ValueError(_("Could not set role in file context for %s") % target)
-+                if type != "<<none>>":
-+                       con = self.createcon(target, seuser)
- 
--		rc = semanage_context_set_type(self.sh, con, type)
--		if rc < 0:
--			raise ValueError(_("Could not set type in file context for %s") % target)
--
--		if serange != "":
--			rc = semanage_context_set_mls(self.sh, con, serange)
--			if rc < 0:
--				raise ValueError(_("Could not set mls fields in file context for %s") % target)
-+                       rc = semanage_context_set_type(self.sh, con, type)
-+                       if rc < 0:
-+                              raise ValueError(_("Could not set type in file context for %s") % target)
-+
-+                       if serange != "":
-+                              rc = semanage_context_set_mls(self.sh, con, serange)
-+                              if rc < 0:
-+                                     raise ValueError(_("Could not set mls fields in file context for %s") % target)
-+                       rc = semanage_fcontext_set_con(self.sh, fcontext, con)
-+                       if rc < 0:
-+                              raise ValueError(_("Could not set file context for %s") % target)
- 
- 		semanage_fcontext_set_type(fcontext, file_types[ftype])
- 
--		rc = semanage_fcontext_set_con(self.sh, fcontext, con)
--		if rc < 0:
--			raise ValueError(_("Could not set file context for %s") % target)
--
- 		rc = semanage_begin_transaction(self.sh)
- 		if rc < 0:
- 			raise ValueError(_("Could not start semanage transaction"))
-@@ -1090,7 +1115,8 @@
- 		if rc < 0:
- 			raise ValueError(_("Could not add file context for %s") % target)
- 
--		semanage_context_free(con)
-+                if type != "<<none>>":
-+                       semanage_context_free(con)
- 		semanage_fcontext_key_free(k)
- 		semanage_fcontext_free(fcontext)
- 
-@@ -1112,16 +1138,29 @@
- 		if rc < 0:
- 			raise ValueError(_("Could not query file context for %s") % target)
- 
--		con = semanage_fcontext_get_con(fcontext)
-+                if setype != "<<none>>":
-+                       con = semanage_fcontext_get_con(fcontext)
- 			
--		if serange != "":
--			semanage_context_set_mls(self.sh, con, untranslate(serange))
--		if seuser != "":
--			semanage_context_set_user(self.sh, con, seuser)	
--		if setype != "":
--			semanage_context_set_type(self.sh, con, setype)
--
--		rc = semanage_begin_transaction(self.sh)
-+                       if con == None:
-+                              con = self.createcon(target)
-+                              
-+                       if serange != "":
-+                              semanage_context_set_mls(self.sh, con, untranslate(serange))
-+                       if seuser != "":
-+                              semanage_context_set_user(self.sh, con, seuser)
-+                              
-+                       if setype != "":
-+                              semanage_context_set_type(self.sh, con, setype)
-+
-+                       rc = semanage_fcontext_set_con(self.sh, fcontext, con)
-+                       if rc < 0:
-+                              raise ValueError(_("Could not set file context for %s") % target)
-+                else:
-+                       rc = semanage_fcontext_set_con(self.sh, fcontext, None)
-+                       if rc < 0:
-+                              raise ValueError(_("Could not set file context for %s") % target)
-+                       
-+                rc = semanage_begin_transaction(self.sh)
- 		if rc < 0:
- 			raise ValueError(_("Could not start semanage transaction"))
- 
-@@ -1167,17 +1206,20 @@
- 
- 		semanage_fcontext_key_free(k)		
- 
--	def get_all(self):
-+	def get_all(self, locallist = 0):
- 		l = []
--		(rc, self.flist) = semanage_fcontext_list(self.sh)
--		if rc < 0:
--			raise ValueError(_("Could not list file contexts"))
--
--		(rc, fclocal) = semanage_fcontext_list_local(self.sh)
--		if rc < 0:
--			raise ValueError(_("Could not list local file contexts"))
-+                if locallist:
-+                       (rc, self.flist) = semanage_fcontext_list_local(self.sh)
-+                else:
-+                       (rc, self.flist) = semanage_fcontext_list(self.sh)
-+                       if rc < 0:
-+                              raise ValueError(_("Could not list file contexts"))
-+
-+                       (rc, fclocal) = semanage_fcontext_list_local(self.sh)
-+                       if rc < 0:
-+                              raise ValueError(_("Could not list local file contexts"))
- 
--		self.flist += fclocal
-+                       self.flist += fclocal
- 
- 		for fcontext in self.flist:
- 			expr = semanage_fcontext_get_expr(fcontext)
-@@ -1191,10 +1233,10 @@
- 
- 		return l
- 			
--	def list(self, heading = 1):
-+	def list(self, heading = 1, locallist = 0 ):
- 		if heading:
- 			print "%-50s %-18s %s\n" % (_("SELinux fcontext"), _("type"), _("Context"))
--		fcon_list = self.get_all()
-+		fcon_list = self.get_all(locallist)
- 		for fcon in fcon_list:
- 			if len(fcon) > 3:
- 				if is_mls_enabled:
-@@ -1205,9 +1247,9 @@
- 				print "%-50s %-18s <<None>>" % (fcon[0], fcon[1])
- 				
- class booleanRecords(semanageRecords):
--	def __init__(self):
--		semanageRecords.__init__(self)
--		
-+	def __init__(self, store = ""):
-+		semanageRecords.__init__(self, store)
-+
- 	def modify(self, name, value = ""):
- 		if value == "":
- 			raise ValueError(_("Requires value"))
-@@ -1266,34 +1308,62 @@
- 		if rc < 0:
- 			raise ValueError(_("Could not start semanage transaction"))
- 
--		rc = semanage_fcontext_del_local(self.sh, k)
-+		rc = semanage_bool_del_local(self.sh, k)
- 		if rc < 0:
- 			raise ValueError(_("Could not delete boolean %s") % name)
- 	
- 		rc = semanage_commit(self.sh)
- 		if rc < 0:
- 			raise ValueError(_("Could not delete boolean %s") % name)
--		
- 		semanage_bool_key_free(k)
- 
--	def get_all(self):
-+	def deleteall(self):
-+		(rc, self.blist) = semanage_bool_list_local(self.sh)
-+		if rc < 0:
-+			raise ValueError(_("Could not list booleans"))
-+
-+		rc = semanage_begin_transaction(self.sh)
-+		if rc < 0:
-+			raise ValueError(_("Could not start semanage transaction"))
-+
-+		for boolean in self.blist:
-+                       name = semanage_bool_get_name(boolean)
-+                       (rc,k) = semanage_bool_key_create(self.sh, name)
-+                       if rc < 0:
-+                              raise ValueError(_("Could not create a key for %s") % name)
-+
-+                       rc = semanage_bool_del_local(self.sh, k)
-+                       if rc < 0:
-+                              raise ValueError(_("Could not delete boolean %s") % name)
-+                       semanage_bool_key_free(k)
-+	
-+		rc = semanage_commit(self.sh)
-+		if rc < 0:
-+			raise ValueError(_("Could not delete boolean %s") % name)
-+	def get_all(self, locallist = 0):
- 		ddict = {}
--		(rc, self.blist) = semanage_bool_list(self.sh)
-+                if locallist:
-+                       (rc, self.blist) = semanage_bool_list_local(self.sh)
-+                else:
-+                       (rc, self.blist) = semanage_bool_list(self.sh)
- 		if rc < 0:
- 			raise ValueError(_("Could not list booleans"))
- 
- 		for boolean in self.blist:
--			name = semanage_bool_get_name(boolean)
--			value = semanage_bool_get_value(boolean)
--			ddict[name] = value
-+                       value = []
-+                       name = semanage_bool_get_name(boolean)
-+                       value.append(semanage_bool_get_value(boolean))
-+                       value.append(selinux.security_get_boolean_pending(name))
-+                       value.append(selinux.security_get_boolean_active(name))
-+                       ddict[name] = value
- 
- 		return ddict
- 			
--	def list(self, heading = 1):
-+	def list(self, heading = 1, locallist = 0):
- 		if heading:
--			print "%-50s %-18s\n" % (_("SELinux boolean"), _("value"))
--		ddict = self.get_all()
-+			print "%-50s %7s %7s %7s\n" % (_("SELinux boolean"), _("value"), _("pending"),  _("active") )
-+		ddict = self.get_all(locallist)
- 		keys = ddict.keys()
- 		for k in keys:
- 			if ddict[k]:
--				print "%-50s %-18s " % (k[0], ddict[k][0])
-+				print "%-50s %7d %7d %7d " % (k, ddict[k][0],ddict[k][1], ddict[k][2])
-diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/semodule/semodule.8 policycoreutils-2.0.27/semodule/semodule.8
---- nsapolicycoreutils/semodule/semodule.8	2007-07-16 14:20:42.000000000 -0400
-+++ policycoreutils-2.0.27/semodule/semodule.8	2007-10-03 11:23:39.000000000 -0400
-@@ -23,6 +23,9 @@
- .B \-B, \-\-build		
- force a rebuild of policy (also reloads unless -n is used)
- .TP
-+.B \-D, \-\-disable_dontaudit
-+Temporarily remove dontaudits from policy.  Reverts whenever policy is rebuilt
-+.TP
- .B \-i,\-\-install=MODULE_PKG
- install/replace a module package
- .TP
-@@ -58,6 +61,10 @@
- $ semodule -i httpd.pp
- # List non-base modules.
- $ semodule -l
-+# Turn on all AVC Messages for which SELinux currently is "dontaudit"ing.
-+$ semodule -DB
-+# Turn "dontaudit" rules back on.
-+$ semodule -B
- # Install or replace all non-base modules in the current directory.
- $ semodule -i *.pp
- # Install or replace all modules in the current directory.
 diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/setfiles/setfiles.c policycoreutils-2.0.27/setfiles/setfiles.c
 --- nsapolicycoreutils/setfiles/setfiles.c	2007-09-18 16:27:24.000000000 -0400
 +++ policycoreutils-2.0.27/setfiles/setfiles.c	2007-10-03 11:23:39.000000000 -0400


Index: policycoreutils.spec
===================================================================
RCS file: /cvs/extras/rpms/policycoreutils/devel/policycoreutils.spec,v
retrieving revision 1.458
retrieving revision 1.459
diff -u -r1.458 -r1.459
--- policycoreutils.spec	4 Oct 2007 14:30:30 -0000	1.458
+++ policycoreutils.spec	5 Oct 2007 17:16:36 -0000	1.459
@@ -5,8 +5,8 @@
 %define	sepolgenver	1.0.10
 Summary: SELinux policy core utilities
 Name:	 policycoreutils
-Version: 2.0.27
-Release: 7%{?dist}
+Version: 2.0.28
+Release: 1%{?dist}
 License: GPLv2+
 Group:	 System Environment/Base
 Source:	 http://www.nsa.gov/selinux/archives/policycoreutils-%{version}.tgz
@@ -200,6 +200,11 @@
 fi
 
 %changelog
+* Fri Oct 5 2007 Dan Walsh <dwalsh at redhat.com> 2.0.28-1
+- Update to upstream
+	* Update semodule man page for -D from Dan Walsh.
+	* Add boolean, locallist, deleteall, and store support to semanage from Dan Walsh.
+
 * Tue Oct 2 2007 Dan Walsh <dwalsh at redhat.com> 2.0.27-7
 - Add genhomedircon script to rebuild file_context for shadow-utils
 


Index: sources
===================================================================
RCS file: /cvs/extras/rpms/policycoreutils/devel/sources,v
retrieving revision 1.167
retrieving revision 1.168
diff -u -r1.167 -r1.168
--- sources	27 Sep 2007 15:24:00 -0000	1.167
+++ sources	5 Oct 2007 17:16:36 -0000	1.168
@@ -1,2 +1,2 @@
 eddb3e34fb982d752aa8cbed7b98f3d2  sepolgen-1.0.10.tgz
-fd43154b636614069dac6f5a408e4e32  policycoreutils-2.0.27.tgz
+872ad9586b4d0d5d1e00a50aaaf261f6  policycoreutils-2.0.28.tgz




More information about the fedora-extras-commits mailing list