3a53f1b
diff --exclude-from=exclude --exclude=sepolgen-1.0.16 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/Makefile policycoreutils-2.0.62/Makefile
55a7005
--- nsapolicycoreutils/Makefile	2008-08-28 09:34:24.000000000 -0400
3a53f1b
+++ policycoreutils-2.0.62/Makefile	2009-02-18 16:52:27.000000000 -0500
55a7005
@@ -1,4 +1,4 @@
55a7005
-SUBDIRS = setfiles semanage load_policy newrole run_init secon audit2allow audit2why scripts sestatus semodule_package semodule semodule_link semodule_expand semodule_deps setsebool po
55a7005
+SUBDIRS = setfiles semanage load_policy newrole run_init secon audit2allow audit2why scripts sestatus semodule_package semodule semodule_link semodule_expand semodule_deps setsebool po gui
55a7005
 
55a7005
 INOTIFYH = $(shell ls /usr/include/sys/inotify.h 2>/dev/null)
55a7005
 
3a53f1b
diff --exclude-from=exclude --exclude=sepolgen-1.0.16 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/restorecond/restorecond.conf policycoreutils-2.0.62/restorecond/restorecond.conf
3a53f1b
--- nsapolicycoreutils/restorecond/restorecond.conf	2009-02-18 16:44:47.000000000 -0500
3a53f1b
+++ policycoreutils-2.0.62/restorecond/restorecond.conf	2009-02-23 11:32:21.000000000 -0500
3a53f1b
@@ -5,3 +5,7 @@
3a53f1b
 /var/run/utmp
3a53f1b
 /var/log/wtmp
3a53f1b
 ~/*
3a53f1b
+/root/.ssh
3a53f1b
+/root/.ssh/*
3a53f1b
+
3a53f1b
+
3a53f1b
diff --exclude-from=exclude --exclude=sepolgen-1.0.16 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/scripts/fixfiles policycoreutils-2.0.62/scripts/fixfiles
3a53f1b
--- nsapolicycoreutils/scripts/fixfiles	2009-02-18 16:44:47.000000000 -0500
3a53f1b
+++ policycoreutils-2.0.62/scripts/fixfiles	2009-02-19 10:07:49.000000000 -0500
3a53f1b
@@ -122,7 +122,7 @@
3a53f1b
 fi
3a53f1b
 if [ ! -z "$RPMFILES" ]; then
3a53f1b
     for i in `echo "$RPMFILES" | sed 's/,/ /g'`; do
3a53f1b
-	rpmlist $i | ${RESTORECON} ${OUTFILES} ${FORCEFLAG} $* -i -f - 2>&1 >> $LOGFILE
3a53f1b
+	rpmlist $i | ${RESTORECON} ${OUTFILES} ${FORCEFLAG} $* -R -i -f - 2>&1 >> $LOGFILE
3a53f1b
     done
3a53f1b
     exit $?
3a53f1b
 fi
28777e8
diff --exclude-from=exclude --exclude=sepolgen-1.0.16 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/semanage/semanage policycoreutils-2.0.62/semanage/semanage
28777e8
--- nsapolicycoreutils/semanage/semanage	2009-02-18 16:44:47.000000000 -0500
28777e8
+++ policycoreutils-2.0.62/semanage/semanage	2009-03-12 09:22:45.000000000 -0400
28777e8
@@ -464,10 +464,10 @@
28777e8
                       else:
28777e8
                              fd = open(input, 'r')
28777e8
                       trans = seobject.semanageRecords(store)
28777e8
-                      trans.begin()
28777e8
+                      trans.start()
28777e8
                       for l in fd.readlines():
28777e8
                              process_args(mkargv(l))
28777e8
-                      trans.commit()
28777e8
+                      trans.finish()
28777e8
                else:
28777e8
                       process_args(sys.argv[1:])
28777e8
 			
28777e8
diff --exclude-from=exclude --exclude=sepolgen-1.0.16 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/semanage/seobject.py policycoreutils-2.0.62/semanage/seobject.py
28777e8
--- nsapolicycoreutils/semanage/seobject.py	2008-11-14 17:10:15.000000000 -0500
e5ab0eb
+++ policycoreutils-2.0.62/semanage/seobject.py	2009-03-31 08:54:25.000000000 -0400
28777e8
@@ -281,15 +281,20 @@
28777e8
                global handle
28777e8
                       
28777e8
                if handle != None:
28777e8
-                      self.transaction = True
28777e8
                       self.sh = handle
28777e8
                else:
28777e8
                       self.sh=get_handle(store)
28777e8
-                      self.transaction = False
28777e8
+               self.transaction = False
28777e8
 
28777e8
         def deleteall(self):
28777e8
                raise ValueError(_("Not yet implemented"))
28777e8
 
28777e8
+        def start(self):
28777e8
+               if self.transaction:
28777e8
+                      raise ValueError(_("Semanage transaction already in progress"))
28777e8
+               self.begin()
28777e8
+               self.transaction = True
28777e8
+
28777e8
         def begin(self):
28777e8
                if self.transaction:
28777e8
                       return
28777e8
@@ -303,6 +308,12 @@
28777e8
                if rc < 0:
28777e8
                       raise ValueError(_("Could not commit semanage transaction"))
28777e8
 
28777e8
+        def finish(self):
28777e8
+               if not self.transaction:
28777e8
+                      raise ValueError(_("Semanage transaction not in progress"))
28777e8
+               self.transaction = False
28777e8
+               self.commit()
28777e8
+
28777e8
 class permissiveRecords(semanageRecords):
28777e8
 	def __init__(self, store):
28777e8
                semanageRecords.__init__(self, store)
e5ab0eb
@@ -328,6 +339,7 @@
e5ab0eb
 
e5ab0eb
 
e5ab0eb
 	def add(self, type):
e5ab0eb
+               import glob
e5ab0eb
                name = "permissive_%s" % type
e5ab0eb
                dirname = "/var/lib/selinux"
e5ab0eb
                os.chdir(dirname)
e5ab0eb
@@ -351,16 +363,19 @@
e5ab0eb
                fd.close()
e5ab0eb
 
e5ab0eb
                rc = semanage_module_install(self.sh, data, len(data));
e5ab0eb
-               if rc < 0:
e5ab0eb
-			raise ValueError(_("Could not set permissive domain %s (module installation failed)") % name)
e5ab0eb
-
e5ab0eb
-               self.commit()
e5ab0eb
+               if rc >= 0:
e5ab0eb
+                      self.commit()
e5ab0eb
 
e5ab0eb
                for root, dirs, files in os.walk("tmp", topdown=False):
e5ab0eb
                       for name in files:
e5ab0eb
                              os.remove(os.path.join(root, name))
e5ab0eb
                       for name in dirs:
e5ab0eb
                              os.rmdir(os.path.join(root, name))
e5ab0eb
+               os.removedirs("tmp")
e5ab0eb
+               for i in glob.glob("permissive_%s.*" % type):
e5ab0eb
+                      os.remove(i)
e5ab0eb
+               if rc < 0:
e5ab0eb
+			raise ValueError(_("Could not set permissive domain %s (module installation failed)") % name)
e5ab0eb
 
e5ab0eb
 	def delete(self, name):
e5ab0eb
                for n in name.split():