[policycoreutils] Update sepolicy gui code, cleanups and add file transition tab

Daniel J Walsh dwalsh at fedoraproject.org
Thu Aug 15 13:01:11 UTC 2013


commit 02d8b93ce51444cb4b53b7ef3f242408b03b704a
Author: Dan Walsh <dwalsh at redhat.com>
Date:   Thu Aug 15 09:00:32 2013 -0400

    Update sepolicy gui code, cleanups and add file transition tab
    
    - Fix semanage fcontext -a --ftype code to work.

 policycoreutils-rhat.patch | 4305 +++++++++++++++++++++++++-------------------
 policycoreutils.spec       |    6 +-
 2 files changed, 2460 insertions(+), 1851 deletions(-)
---
diff --git a/policycoreutils-rhat.patch b/policycoreutils-rhat.patch
index c0be572..a76bfeb 100644
--- a/policycoreutils-rhat.patch
+++ b/policycoreutils-rhat.patch
@@ -123,7 +123,7 @@ index 8e0c396..9f5185d 100644
  if __name__ == "__main__":
      app = AuditToPolicy()
 diff --git a/policycoreutils/audit2allow/audit2allow.1 b/policycoreutils/audit2allow/audit2allow.1
-index a854a45..0155f98 100644
+index a854a45..2929b68 100644
 --- a/policycoreutils/audit2allow/audit2allow.1
 +++ b/policycoreutils/audit2allow/audit2allow.1
 @@ -29,7 +29,7 @@
@@ -182,13 +182,27 @@ index a854a45..0155f98 100644
  $ cat local.te
  policy_module(local, 1.0)
  
-@@ -157,32 +157,32 @@ files_read_etc_files(myapp_t)
+@@ -155,34 +155,49 @@ files_read_etc_files(myapp_t)
  
- # SELinux provides a policy devel environment under /usr/share/selinux/devel
+ .B Building module policy using Makefile
+ 
+-# SELinux provides a policy devel environment under /usr/share/selinux/devel
++# SELinux provides a policy devel environment under 
++# /usr/share/selinux/devel including all of the shipped
++# interface files.
  # You can create a te file and compile it by executing
 -$ make -f /usr/share/selinux/devel/Makefile
 -$ semodule -i local.pp
++
 +$ make -f /usr/share/selinux/devel/Makefile local.pp
++
++
++# This make command will compile a local.te file in the current 
++# directory. If you did not specify a "pp" file, the make file 
++# will compile all "te" files in the current directory.  After 
++# you compile your te file into a "pp" file, you need to install 
++# it using the semodule command.
++
 +$ semodule \-i local.pp
  
  .B Building module policy manually
@@ -196,9 +210,11 @@ index a854a45..0155f98 100644
  # Compile the module
 -$ checkmodule -M -m -o local.mod local.te
 +$ checkmodule \-M \-m \-o local.mod local.te
++
  # Create the package 
 -$ semodule_package -o local.pp -m local.mod
 +$ semodule_package \-o local.pp \-m local.mod
++
  # Load the module into the kernel
 -$ semodule -i local.pp
 +$ semodule \-i local.pp
@@ -208,6 +224,7 @@ index a854a45..0155f98 100644
 -Generating type enforcment file: local.te
 -Compiling policy: checkmodule -M -m -o local.mod local.te
 -Building package: semodule_package -o local.pp -m local.mod
++
 +$ cat /var/log/audit/audit.log | audit2allow \-M local
 +Generating type enforcement file: local.te
 +Compiling policy: checkmodule \-M \-m \-o local.mod local.te
@@ -220,9 +237,10 @@ index a854a45..0155f98 100644
  
 -semodule -i local.pp
 +semodule \-i local.pp
++
++.B Using audit2allow to generate monolithic (non\-module) policy
  
 -.B Using audit2allow to generate monolithic (non-module) policy
-+.B Using audit2allow to generate monolithic (non\-module) policy
  $ cd /etc/selinux/$SELINUXTYPE/src/policy
  $ cat /var/log/audit/audit.log | audit2allow >> domains/misc/local.te
  $ cat domains/misc/local.te
@@ -509367,7 +509385,7 @@ index 7c6d75a..d095a25 100644
  .TP
  \fB\-d\fR
 diff --git a/policycoreutils/scripts/fixfiles b/policycoreutils/scripts/fixfiles
-index 6901e4d..5acb111 100755
+index 6901e4d..9cfe355 100755
 --- a/policycoreutils/scripts/fixfiles
 +++ b/policycoreutils/scripts/fixfiles
 @@ -3,7 +3,7 @@
@@ -509453,7 +509471,15 @@ index 6901e4d..5acb111 100755
      done
      exclude="$exclude `exclude_dirs_from_relabelling`"
      echo "$exclude"
-@@ -133,7 +133,7 @@ FILESYSTEMS="$FILESYSTEMSRW $FILESYSTEMSRO"
+@@ -115,7 +115,6 @@ exclude_dirs() {
+ #
+ fullFlag=0
+ BOOTTIME=""
+-FORCEFLAG=""
+ VERBOSE="-p"
+ FORCEFLAG=""
+ DIRS=""
+@@ -133,7 +132,7 @@ FILESYSTEMS="$FILESYSTEMSRW $FILESYSTEMSRO"
  SELINUXTYPE="targeted"
  if [ -e /etc/selinux/config ]; then
      . /etc/selinux/config
@@ -509462,7 +509488,14 @@ index 6901e4d..5acb111 100755
  else
      FC=/etc/security/selinux/file_contexts
  fi
-@@ -158,7 +158,7 @@ newer() {
+@@ -152,13 +151,13 @@ fi
+ newer() {
+     DATE=$1
+     for m in `echo $FILESYSTEMSRW`; do
+-	find $m -mount -newermt $DATE -print0 2>/dev/null | ${RESTORECON} ${VERBOSE} -i -0 -f -
++	find $m -mount -newermt $DATE -print0 2>/dev/null | ${RESTORECON} ${FORCEFLAG} ${VERBOSE} -i -0 -f -
+     done;
+ 
  }
  
  #
@@ -509471,7 +509504,7 @@ index 6901e4d..5acb111 100755
  # run restorecon on all files affected by the differences.
  #
  diff_filecontext() {
-@@ -172,30 +172,31 @@ if [ -f ${PREFC} -a -x /usr/bin/diff ]; then
+@@ -172,30 +171,31 @@ if [ -f ${PREFC} -a -x /usr/bin/diff ]; then
  	    grep '^[<>]'|cut -c3-| grep ^/ | \
  	    egrep -v '(^/home|^/root|^/tmp|^/dev)' |\
  	sed -r -e 's,[[:blank:]].*,,g' \
@@ -509515,7 +509548,7 @@ index 6901e4d..5acb111 100755
  #
  LogReadOnly() {
  if [ ! -z "$FILESYSTEMSRO" ]; then
-@@ -209,7 +210,7 @@ rpm -q --qf '[%{FILESTATES} %{FILENAMES}\n]' "$1" | grep '^0 ' | cut -f2- -d ' '
+@@ -209,7 +209,7 @@ rpm -q --qf '[%{FILESTATES} %{FILENAMES}\n]' "$1" | grep '^0 ' | cut -f2- -d ' '
  [ ${PIPESTATUS[0]} != 0 ] && echo "$1 not found" >/dev/stderr
  }
  
@@ -509524,7 +509557,7 @@ index 6901e4d..5acb111 100755
  # restore
  # if called with -n will only check file context
  #
-@@ -241,8 +242,8 @@ then
+@@ -241,8 +241,8 @@ then
  	TEMPFCFILE=`mktemp ${FC}.XXXXXXXXXX`
  	test -z "$TEMPFCFILE" && exit
  	/bin/cp -p ${FC} ${TEMPFCFILE} &>/dev/null || exit
@@ -509535,7 +509568,7 @@ index 6901e4d..5acb111 100755
  	do
  		p="${p%/}"
  		p1="${p}(/.*)? -- <<none>>"
-@@ -253,7 +254,7 @@ FC=$TEMPFCFILE
+@@ -253,7 +253,7 @@ FC=$TEMPFCFILE
  fi
  if [  -n "${FILESYSTEMSRW}" ]; then
      echo "Relabeling `echo ${FILESYSTEMSRW}`"
@@ -509544,7 +509577,16 @@ index 6901e4d..5acb111 100755
  else
      echo >&2 "fixfiles: No suitable file systems found"
  fi
-@@ -278,7 +279,7 @@ fullrelabel() {
+@@ -265,7 +265,7 @@ find /tmp \( -context "*:${UNLABELED}*" -o -context "*:${UNDEFINED}*" \) \( -typ
+ find /tmp \( -context "*:${UNLABELED}*" -o -context "*:${UNDEFINED}*" \) -exec chcon --reference /tmp {} \;
+ find /var/tmp \( -context "*:${UNLABELED}*" -o -context "*:${UNDEFINED}*" \) -exec chcon --reference /var/tmp {} \;
+ find /var/run \( -context "*:${UNLABELED}*" -o -context "*:${UNDEFINED}*" \) -exec chcon --reference /var/run {} \;
+-[ -e /var/lib/debug ] && find /var/lib/debug \( -context "*:${UNLABELED}*" -o -context "*:${UNDEFINED}*" \) -exec chcon --reference /lib {} \;
++[ ! -e /var/lib/debug ] || find /var/lib/debug \( -context "*:${UNLABELED}*" -o -context "*:${UNDEFINED}*" \) -exec chcon --reference /lib {} \; 
+ exit $?
+ }
+ 
+@@ -278,7 +278,7 @@ fullrelabel() {
  
  relabel() {
      if [ ! -z "$RPMFILES" ]; then
@@ -509553,7 +509595,7 @@ index 6901e4d..5acb111 100755
      fi
  
      if [ $fullFlag == 1  ]; then
-@@ -286,13 +287,13 @@ relabel() {
+@@ -286,13 +286,13 @@ relabel() {
      fi
  
      echo -n "
@@ -509571,18 +509613,35 @@ index 6901e4d..5acb111 100755
  	fullrelabel
      else
  	restore
-@@ -322,8 +323,8 @@ case "$1" in
+@@ -322,14 +322,14 @@ case "$1" in
  esac
  }
  usage() {
 -      	echo $"""
 -Usage: $0 [-F] [-l logfile ] { check | restore| [-f] relabel | verify } [[dir/file] ... ] 
 +	echo $"""
-+Usage: $0 [-F] [-l logfile ] { check | restore| [-f] relabel | verify } [[dir/file] ... ]
++Usage: $0 [-v] [-F]  [-N time ] [-l logfile ] { check | restore| [-f] relabel | verify } [[dir/file] ... ]
  or
- Usage: $0 [-F] -R rpmpackage[,rpmpackage...] [-l logfile ] { check | restore | verify }
+-Usage: $0 [-F] -R rpmpackage[,rpmpackage...] [-l logfile ] { check | restore | verify }
++Usage: $0 [-v] [-F] -R rpmpackage[,rpmpackage...] [-l logfile ] { check | restore | verify }
  or
-@@ -351,13 +352,13 @@ while getopts "N:BC:FfR:l:v" i; do
+-Usage: $0 [-F] -C PREVIOUS_FILECONTEXT { check | restore | verify }
++Usage: $0 [-v] [-F] -C PREVIOUS_FILECONTEXT { check | restore | verify }
+ or
+-Usage: $0 onboot
++Usage: $0 [-F] [-B] onboot
+ """
+ }
+ 
+@@ -343,7 +343,6 @@ while getopts "N:BC:FfR:l:v" i; do
+     case "$i" in
+ 	B)
+ 		BOOTTIME=`/bin/who -b | awk '{print $3}'`
+-		echo $BOOTTIME
+ 		;;
+ 	f)
+ 		fullFlag=1
+@@ -351,13 +350,13 @@ while getopts "N:BC:FfR:l:v" i; do
  	v)
  		VERBOSE="-v"
  		;;
@@ -509599,7 +509658,7 @@ index 6901e4d..5acb111 100755
  		PREFC=$OPTARG
  		;;
  	F)
-@@ -397,11 +398,11 @@ else
+@@ -397,11 +396,11 @@ else
      if [ -z "$1" ]; then
  	process $command
      else
@@ -509615,15 +509674,15 @@ index 6901e4d..5acb111 100755
  fi
  exit $?
 diff --git a/policycoreutils/scripts/fixfiles.8 b/policycoreutils/scripts/fixfiles.8
-index 9ab7334..0086417 100644
+index 9ab7334..b622c51 100644
 --- a/policycoreutils/scripts/fixfiles.8
 +++ b/policycoreutils/scripts/fixfiles.8
-@@ -5,13 +5,13 @@ fixfiles \- fix file SELinux security contexts.
+@@ -5,15 +5,15 @@ fixfiles \- fix file SELinux security contexts.
  .SH "SYNOPSIS"
  
  .B fixfiles 
 -.I [-v] [-F] [-l logfile ] { check | restore|[-f] relabel | verify } [[dir/file] ... ] 
-+.I [\-v] [\-F] [\-l logfile ] { check | restore|[\-f] relabel | verify } [[dir/file] ... ]
++.I [\-v] [\-F] [-B] [ -N time ] [\-l logfile ] { check | restore|[\-f] relabel | verify } [[dir/file] ... ]
  
  .B fixfiles 
 -.I [-v] [-F] [ -R rpmpackagename[,rpmpackagename...] ] [-l logfile ] { check | restore | verify }
@@ -509631,11 +509690,14 @@ index 9ab7334..0086417 100644
  
  .B fixfiles 
 -.I [-v] [ -C PREVIOUS_FILECONTEXT ] [-l logfile ] { check | restore | verify }
-+.I [\-v] [ \-C PREVIOUS_FILECONTEXT ] [\-l logfile ] { check | restore | verify }
++.I [\-v] [\-F] \-C PREVIOUS_FILECONTEXT [\-l logfile ] { check | restore | verify }
  
- .B fixfiles 
+-.B fixfiles 
++.B fixfiles [-F] [-B] 
  .I onboot
-@@ -28,35 +28,35 @@ It can also be run at any time to relabel when adding support for
+ 
+ .SH "DESCRIPTION"
+@@ -28,35 +28,43 @@ It can also be run at any time to relabel when adding support for
  new policy, or  just check whether the file contexts are all
  as you expect.  By default it will relabel all mounted ext2, ext3, xfs and 
  jfs file systems as long as they do not have a security context mount 
@@ -509651,6 +509713,9 @@ index 9ab7334..0086417 100644
  .SH "OPTIONS"
  .TP 
 -.B -l logfile
++.B \-B
++If specified with onboot, this fixfiles will record the current date in the /.autorelabel file, so that it can be used later to speed up labeling. If used with restore, the restore will only affect files that were modified today.
++.TP 
 +.B \-l logfile
  Save the output to the specified logfile
  .TP 
@@ -509675,6 +509740,11 @@ index 9ab7334..0086417 100644
  Run a diff on  the PREVIOUS_FILECONTEXT file to the currently installed one, and restore the context of all affected files.
  
  .TP 
++.B \-N time
++Only act on files created after the specified date.  Date must be specified in 
++"YYYY-MM-DD HH:MM" format.  Date field will be passed to find --newermt command.
++
++.TP 
  .B -v
 -Modify verbosity from progess to verbose. (Run restorecon with -v instead of -p)
 +Modify verbosity from progress to verbose. (Run restorecon with -v instead of -p)
@@ -509902,7 +509972,7 @@ index 0000000..e2befdb
 +      packages=["policycoreutils"],
 +)
 diff --git a/policycoreutils/semanage/semanage b/policycoreutils/semanage/semanage
-index 6e33c85..faaed5b 100644
+index 6e33c85..2c1c855 100644
 --- a/policycoreutils/semanage/semanage
 +++ b/policycoreutils/semanage/semanage
 @@ -1,5 +1,7 @@
@@ -510258,7 +510328,7 @@ index 6e33c85..faaed5b 100644
 +                                                                  label.  This is used with fcontext. Requires source  and  target
 +                                                                  path  arguments.  The context labeling for the target subtree is
 +                                                                  made equivalent to that defined for the source.'''))
-+    fcontextParser.add_argument('-f', '--ftype', default="", choices=["all files","--","-d","-c","-b","-s","-l","-p"], help=_(ftype_help))
++    fcontextParser.add_argument('-f', '--ftype', default="", choices=["a","f","d","c","b","s","l","p"], help=_(ftype_help))
 +    parser_add_seuser(fcontextParser, "fcontext")
 +    parser_add_type(fcontextParser, "fcontext")
 +    parser_add_range(fcontextParser, "fcontext")
@@ -511508,7 +511578,7 @@ index 0000000..1b20c82
 +This man page was written by Daniel Walsh <dwalsh at redhat.com>
 diff --git a/policycoreutils/semanage/semanage-fcontext.8 b/policycoreutils/semanage/semanage-fcontext.8
 new file mode 100644
-index 0000000..5e40f44
+index 0000000..ba2355a
 --- /dev/null
 +++ b/policycoreutils/semanage/semanage-fcontext.8
 @@ -0,0 +1,87 @@
@@ -511563,8 +511633,8 @@ index 0000000..5e40f44
 +.I   \-e EQUAL, \-\-equal EQUAL
 +Substitute target path with sourcepath when generating default label. This is used with fcontext. Requires source and target path arguments. The context labeling for the target subtree is made equivalent to that defined for the source.
 +.TP
-+.I   \-f [{\-\-,\-d,\-c,\-b,\-s,\-l,\-p}], \-\-ftype [{\-\-,\-d,\-c,\-b,\-s,\-l,\-p}]
-+File Type. This is used with fcontext. Requires a file type as shown in the mode field by ls, e.g. use \-d to match only directories or \-\- to match only regular files. The following file type options can be passed: \-\- (regular file),\-d (directory),\-c (character device), \-b (block device),\-s (socket),\-l (symbolic link),\-p (named pipe).  If you do not specify a file type, the file type will default to "all files".
++.I   \-f [{a,f,d,c,b,s,l,p}], \-\-ftype [{a,f,d,c,b,s,l,p}]
++File Type. This is used with fcontext. Requires a file type as shown in the mode field by ls, e.g. use 'd' to match only directories or 'f' to match only regular files. The following file type options can be passed: f (regular file),d (directory),c (character device), b (block device),s (socket),l (symbolic link),p (named pipe).  If you do not specify a file type, the file type will default to "all files".
 +
 +.TP
 +.I   \-s SEUSER, \-\-seuser SEUSER
@@ -512379,10 +512449,10 @@ index 28a9022..90b142e 100644
 +usage: semanage [-h]
 +                
 diff --git a/policycoreutils/semanage/seobject.py b/policycoreutils/semanage/seobject.py
-index 85bc37f..e67602a 100644
+index 85bc37f..5c9e83b 100644
 --- a/policycoreutils/semanage/seobject.py
 +++ b/policycoreutils/semanage/seobject.py
-@@ -32,11 +32,10 @@ from IPy import IP
+@@ -32,30 +32,29 @@ from IPy import IP
  import gettext
  gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
  gettext.textdomain(PROGNAME)
@@ -512398,6 +512468,33 @@ index 85bc37f..e67602a 100644
  
  import syslog
  
+ file_types = {}
+-file_types[""] = SEMANAGE_FCONTEXT_ALL;
++file_types["a"] = SEMANAGE_FCONTEXT_ALL;
+ file_types["all files"] = SEMANAGE_FCONTEXT_ALL;
+-file_types["--"] = SEMANAGE_FCONTEXT_REG;
++file_types["f"] = SEMANAGE_FCONTEXT_REG;
+ file_types["regular file"] = SEMANAGE_FCONTEXT_REG;
+-file_types["-d"] = SEMANAGE_FCONTEXT_DIR;
++file_types["d"] = SEMANAGE_FCONTEXT_DIR;
+ file_types["directory"] = SEMANAGE_FCONTEXT_DIR;
+-file_types["-c"] = SEMANAGE_FCONTEXT_CHAR;
++file_types["c"] = SEMANAGE_FCONTEXT_CHAR;
+ file_types["character device"] = SEMANAGE_FCONTEXT_CHAR;
+-file_types["-b"] = SEMANAGE_FCONTEXT_BLOCK;
++file_types["b"] = SEMANAGE_FCONTEXT_BLOCK;
+ file_types["block device"] = SEMANAGE_FCONTEXT_BLOCK;
+-file_types["-s"] = SEMANAGE_FCONTEXT_SOCK;
++file_types["s"] = SEMANAGE_FCONTEXT_SOCK;
+ file_types["socket"] = SEMANAGE_FCONTEXT_SOCK;
+-file_types["-l"] = SEMANAGE_FCONTEXT_LINK;
++file_types["l"] = SEMANAGE_FCONTEXT_LINK;
+ file_types["symbolic link"] = SEMANAGE_FCONTEXT_LINK;
+-file_types["-p"] = SEMANAGE_FCONTEXT_PIPE;
++file_types["p"] = SEMANAGE_FCONTEXT_PIPE;
+ file_types["named pipe"] = SEMANAGE_FCONTEXT_PIPE;
+ 
+ try:
 @@ -89,7 +88,7 @@ except:
  			self.log_list=[]
  
@@ -512921,7 +513018,7 @@ index 378eac2..3186c86 100644
 +tmp
 +*.bak
 diff --git a/policycoreutils/sepolicy/Makefile b/policycoreutils/sepolicy/Makefile
-index 11b534f..028bcf8 100644
+index 11b534f..a17eb72 100644
 --- a/policycoreutils/sepolicy/Makefile
 +++ b/policycoreutils/sepolicy/Makefile
 @@ -7,11 +7,11 @@ SBINDIR ?= $(PREFIX)/sbin
@@ -512960,11 +513057,11 @@ index 11b534f..028bcf8 100644
 -	install -m 644 $(BASHCOMPLETIONS) $(BASHCOMPLETIONDIR)
 +	install -m 644 $(BASHCOMPLETIONS) $(BASHCOMPLETIONDIR)/sepolicy
 +	-mkdir -p $(DESTDIR)/etc/dbus-1/system.d/
-+	install -m 644 org.fedoraproject.selinux.conf $(DESTDIR)/etc/dbus-1/system.d/
-+	-mkdir -p $(DESTDIR)/usr/share/dbus-1/system
-+	install -m 644 org.fedoraproject.selinux.service $(DESTDIR)/usr/share/dbus-1/system
++	install -m 644 org.selinux.conf $(DESTDIR)/etc/dbus-1/system.d/
++	-mkdir -p $(DESTDIR)/usr/share/dbus-1/system-services
++	install -m 644 org.selinux.service $(DESTDIR)/usr/share/dbus-1/system-services
 +	-mkdir -p $(DESTDIR)/usr/share/polkit-1/actions/
-+	install -m 644 org.fedoraproject.selinux.policy $(DESTDIR)/usr/share/polkit-1/actions/
++	install -m 644 org.selinux.policy $(DESTDIR)/usr/share/polkit-1/actions/
 +	-mkdir -p $(DESTDIR)/usr/share/system-config-selinux
 +	install -m 755 selinux_server.py $(DESTDIR)/usr/share/system-config-selinux
 diff --git a/policycoreutils/sepolicy/info.c b/policycoreutils/sepolicy/info.c
@@ -513066,11 +513163,11 @@ index 65458e6..cd1026a 100644
  
  		if (py_insert_string(dict, "protocol", proto_str))
  			goto err;
-diff --git a/policycoreutils/sepolicy/org.fedoraproject.selinux.conf b/policycoreutils/sepolicy/org.fedoraproject.selinux.conf
+diff --git a/policycoreutils/sepolicy/org.selinux.conf b/policycoreutils/sepolicy/org.selinux.conf
 new file mode 100644
-index 0000000..58eec32
+index 0000000..a350978
 --- /dev/null
-+++ b/policycoreutils/sepolicy/org.fedoraproject.selinux.conf
++++ b/policycoreutils/sepolicy/org.selinux.conf
 @@ -0,0 +1,23 @@
 +<?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- -->
 +
@@ -513081,26 +513178,26 @@ index 0000000..58eec32
 +
 +  <!-- Only root can own the service -->
 +  <policy user="root">
-+    <allow own="org.fedoraproject.selinux"/>
++    <allow own="org.selinux"/>
 +  </policy>
 +
 +  <!-- Allow anyone to invoke methods on the interfaces,
 +       authorization is performed by PolicyKit -->
 +  <policy at_console="true">
-+    <allow send_destination="org.fedoraproject.selinux"/>
++    <allow send_destination="org.selinux"/>
 +  </policy>
 +  <policy context="default">
-+    <allow send_destination="org.fedoraproject.selinux"
++    <allow send_destination="org.selinux"
 +	   send_interface="org.freedesktop.DBus.Introspectable"/>
 +  </policy>
 +
 +</busconfig>
-diff --git a/policycoreutils/sepolicy/org.fedoraproject.selinux.policy b/policycoreutils/sepolicy/org.fedoraproject.selinux.policy
+diff --git a/policycoreutils/sepolicy/org.selinux.policy b/policycoreutils/sepolicy/org.selinux.policy
 new file mode 100644
-index 0000000..e4046a0
+index 0000000..0a6500f
 --- /dev/null
-+++ b/policycoreutils/sepolicy/org.fedoraproject.selinux.policy
-@@ -0,0 +1,37 @@
++++ b/policycoreutils/sepolicy/org.selinux.policy
+@@ -0,0 +1,71 @@
 +<?xml version="1.0" encoding="UTF-8"?>
 +<!DOCTYPE policyconfig PUBLIC
 +"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
@@ -513110,7 +513207,7 @@ index 0000000..e4046a0
 +    <vendor>Red Hat Inc.</vendor>
 +    <vendor_url>http://www.redhat.com</vendor_url>
 +
-+    <action id="org.fedoraproject.selinux.restorecon">
++    <action id="org.selinux.restorecon">
 +        <description>SELinux write access</description>
 +        <message>System policy prevents restorecon access to SELinux</message>
 +        <defaults>
@@ -513119,7 +513216,7 @@ index 0000000..e4046a0
 +            <allow_active>auth_admin_keep</allow_active>
 +        </defaults>
 +    </action>
-+    <action id="org.fedoraproject.selinux.setenforce">
++    <action id="org.selinux.setenforce">
 +        <description>SELinux write access</description>
 +        <message>System policy prevents setenforce access to SELinux</message>
 +        <defaults>
@@ -513128,7 +513225,7 @@ index 0000000..e4046a0
 +            <allow_active>auth_admin_keep</allow_active>
 +        </defaults>
 +    </action>
-+    <action id="org.fedoraproject.selinux.semanage">
++    <action id="org.selinux.semanage">
 +        <description>SELinux write access</description>
 +        <message>System policy prevents semanage access to SELinux</message>
 +        <defaults>
@@ -513137,15 +513234,49 @@ index 0000000..e4046a0
 +            <allow_active>auth_admin_keep</allow_active>
 +        </defaults>
 +    </action>
++    <action id="org.selinux.customized">
++        <description>SELinux write access</description>
++        <message>System policy prevents customized access to SELinux</message>
++        <defaults>
++            <allow_any>auth_admin_keep</allow_any>
++            <allow_inactive>auth_admin_keep</allow_inactive>
++            <allow_active>auth_admin_keep</allow_active>
++        </defaults>
++    </action>
++    <action id="org.selinux.relabel_on_boot">
++        <description>SELinux write access</description>
++        <message>System policy prevents relabel_on_boot access to SELinux</message>
++        <defaults>
++            <allow_any>yes</allow_any>
++        </defaults>
++    </action>
++    <action id="org.selinux.change_default_policy">
++        <description>SELinux write access</description>
++        <message>System policy prevents change_default_policy access to SELinux</message>
++        <defaults>
++            <allow_any>auth_admin_keep</allow_any>
++            <allow_inactive>auth_admin_keep</allow_inactive>
++            <allow_active>auth_admin_keep</allow_active>
++        </defaults>
++    </action>
++    <action id="org.selinux.change_policy_type">
++        <description>SELinux write access</description>
++        <message>System policy prevents change_policy_type access to SELinux</message>
++        <defaults>
++            <allow_any>auth_admin_keep</allow_any>
++            <allow_inactive>auth_admin_keep</allow_inactive>
++            <allow_active>auth_admin_keep</allow_active>
++        </defaults>
++    </action>
 +</policyconfig>
-diff --git a/policycoreutils/sepolicy/org.fedoraproject.selinux.service b/policycoreutils/sepolicy/org.fedoraproject.selinux.service
+diff --git a/policycoreutils/sepolicy/org.selinux.service b/policycoreutils/sepolicy/org.selinux.service
 new file mode 100644
-index 0000000..e69d673
+index 0000000..3dd9545
 --- /dev/null
-+++ b/policycoreutils/sepolicy/org.fedoraproject.selinux.service
++++ b/policycoreutils/sepolicy/org.selinux.service
 @@ -0,0 +1,4 @@
 +[D-BUS Service]
-+Name=org.fedoraproject.selinux
++Name=org.selinux
 +Exec=/usr/share/system-config-selinux/selinux_server.py
 +User=root
 diff --git a/policycoreutils/sepolicy/policy.c b/policycoreutils/sepolicy/policy.c
@@ -513171,10 +513302,10 @@ index 4eca22d..2a9e1c7 100644
  init_info(m);
 diff --git a/policycoreutils/sepolicy/selinux_server.py b/policycoreutils/sepolicy/selinux_server.py
 new file mode 100644
-index 0000000..1206664
+index 0000000..2870634
 --- /dev/null
 +++ b/policycoreutils/sepolicy/selinux_server.py
-@@ -0,0 +1,69 @@
+@@ -0,0 +1,65 @@
 +#!/usr/bin/python
 +
 +import dbus
@@ -513188,7 +513319,7 @@ index 0000000..1206664
 +from subprocess import Popen, PIPE, STDOUT
 +
 +class selinux_server(slip.dbus.service.Object):
-+    default_polkit_auth_required = "org.fedoraproject.selinux.semanage"
++    default_polkit_auth_required = "org.selinux.semanage"
 +    def __init__ (self, *p, **k):
 +        super(selinux_server, self).__init__(*p, **k)
 +
@@ -513196,12 +513327,10 @@ index 0000000..1206664
 +    # The semanage method runs a transaction on a series of semanage commands,
 +    # these commnds can take the output of customized
 +    # 
-+    @dbus.service.method("org.fedoraproject.selinux", in_signature='s')
++    @dbus.service.method("org.selinux", in_signature='s')
 +    def semanage(self, buf):
-+        fd = open("/run/selinux.input", "w")
-+        fd.write(buf)
-+        fd.close()
-+        p = Popen(["/usr/sbin/semanage", "-i", "/run/selinux.input"],stdout=PIPE, stderr=PIPE)
++        p = Popen(["/usr/sbin/semanage", "import"],stdout=PIPE, stderr=PIPE, stdin=PIPE)
++        p.stdin.write(buf)
 +        output = p.communicate()
 +        if p.returncode and p.returncode != 0:
 +            raise OSError("Failed update SELinux configuration: %s", output)
@@ -513211,28 +513340,26 @@ index 0000000..1206664
 +    # on the server.  This output can be used with the semanage method on 
 +    # another server to make the two systems have duplicate policy.
 +    #
-+    @dbus.service.method("org.fedoraproject.selinux", in_signature='', out_signature='s')
++    @dbus.service.method("org.selinux", in_signature='', out_signature='s')
 +    def customized(self):
-+        p = Popen(["/usr/sbin/semanage", "-o", "/run/selinux.output"],stdout=PIPE, stderr=PIPE)
++        p = Popen(["/usr/sbin/semanage", "export"],stdout=PIPE, stderr=PIPE)
++        buf = p.stdout.read()
 +        output = p.communicate()
 +        if p.returncode and p.returncode != 0:
 +            raise OSError("Failed update SELinux configuration: %s", output)
-+        fd = open("/run/selinux.output", "r")
-+        buf = fd.read()
-+        fd.close()
 +        return buf
 +        
 +    #
 +    # The restorecon method modifies any file path to the default system label
 +    #
-+    @dbus.service.method("org.fedoraproject.selinux", in_signature='s')
++    @dbus.service.method("org.selinux", in_signature='s')
 +    def restorecon(self, path):
-+        selinux.restorecon(str(path))
++        selinux.restorecon(str(path), recursive=1)
 +
 +    #
 +    # The setenforce method turns off the current enforcement of SELinux
 +    #
-+    @dbus.service.method("org.fedoraproject.selinux", in_signature='i')
++    @dbus.service.method("org.selinux", in_signature='i')
 +    def setenforce(self, value):
 +        selinux.security_setenforce(value)
 +
@@ -513240,8 +513367,8 @@ index 0000000..1206664
 +        mainloop = gobject.MainLoop()
 +        dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
 +        system_bus = dbus.SystemBus()
-+        name = dbus.service.BusName("org.fedoraproject.selinux", system_bus)
-+        object = selinux_server(system_bus, "/org/fedoraproject/selinux/object")
++        name = dbus.service.BusName("org.selinux", system_bus)
++        object = selinux_server(system_bus, "/org/selinux/object")
 +        slip.dbus.service.set_mainloop(mainloop)
 +        mainloop.run()
 diff --git a/policycoreutils/sepolicy/sepolgen.8 b/policycoreutils/sepolicy/sepolgen.8
@@ -513546,6 +513673,88 @@ index b6abdf5..c05c943 100644
  .I                \-w, \-\-web
  Generate an additional HTML man pages for the specified domain(s).
  
+diff --git a/policycoreutils/sepolicy/sepolicy-network.8 b/policycoreutils/sepolicy/sepolicy-network.8
+index 4ba92cc..dcddec7 100644
+--- a/policycoreutils/sepolicy/sepolicy-network.8
++++ b/policycoreutils/sepolicy/sepolicy-network.8
+@@ -5,13 +5,16 @@ sepolicy-network \- Examine the SELinux Policy and generate a network report
+ .SH "SYNOPSIS"
+ 
+ .br
+-.B sepolicy network [\-h] (\-l | \-p PORT [PORT ...] | \-t TYPE [TYPE ...] | \-d DOMAIN [DOMAIN ...])
++.B sepolicy network [\-h] (\-l | \-a application [application ...] | \-p PORT [PORT ...] | \-t TYPE [TYPE ...] | \-d DOMAIN [DOMAIN ...])
+ 
+ .SH "DESCRIPTION"
+ Use sepolicy network to examine SELinux Policy and generate network reports.
+ 
+ .SH "OPTIONS"
+ .TP
++.I                \-a, \-\-application
++Generate a report listing the ports to which the specified init application is allowed to connect and or bind.
++.TP
+ .I                \-d, \-\-domain     
+ Generate a report listing the ports to which the specified domain is allowed to connect and or bind.
+ .TP
+@@ -27,6 +30,59 @@ Generate a report listing the port numbers associate with the specified SELinux
+ .I                \-p, \-\-port
+ Generate a report listing the SELinux port types associate with the specified port number.
+ 
++.SH "EXAMPLES"
++
++.B sepolicy network -p 22
++.br
++22: tcp ssh_port_t 22
++.br
++22: udp reserved_port_t 1-511
++.br
++22: tcp reserved_port_t 1-511
++
++.B sepolicy network -a /usr/sbin/sshd
++.br
++sshd_t: tcp name_connect
++.br
++	111 (portmap_port_t)
++.br
++	53 (dns_port_t)
++.br
++	88, 750, 4444 (kerberos_port_t)
++.br
++	9080 (ocsp_port_t)
++.br
++	9180, 9701, 9443-9447 (pki_ca_port_t)
++.br
++	32768-61000 (ephemeral_port_t)
++.br
++	all ports < 1024 (reserved_port_type)
++.br
++	all ports with out defined types (port_t)
++.br
++sshd_t: tcp name_bind
++.br
++	22 (ssh_port_t)
++.br
++	5900-5983, 5985-5999 (vnc_port_t)
++.br
++	6000-6020 (xserver_port_t)
++.br
++	32768-61000 (ephemeral_port_t)
++.br
++	all ports > 500 and  < 1024 (rpc_port_type)
++.br
++	all ports with out defined types (port_t)
++.br
++sshd_t: udp name_bind
++.br
++	32768-61000 (ephemeral_port_t)
++.br
++	all ports > 500 and  < 1024 (rpc_port_type)
++.br
++	all ports with out defined types (port_t)
++
++
+ .SH "AUTHOR"
+ This man page was written by Daniel Walsh <dwalsh at redhat.com>
+ 
 diff --git a/policycoreutils/sepolicy/sepolicy.8 b/policycoreutils/sepolicy/sepolicy.8
 index 0748ca9..6348287 100644
 --- a/policycoreutils/sepolicy/sepolicy.8
@@ -513568,7 +513777,7 @@ index 0748ca9..6348287 100644
 -selinux(8), sepolicy-booleans(8), sepolicy-communicate(8), sepolicy-generate(8), sepolicy-interface(8),  sepolicy-network(8), sepolicy-manpage(8), sepolicy-transition(8)
 +selinux(8), sepolicy-booleans(8), sepolicy-communicate(8), sepolicy-generate(8),sepolicy-gui(8), sepolicy-interface(8),  sepolicy-network(8), sepolicy-manpage(8), sepolicy-transition(8)
 diff --git a/policycoreutils/sepolicy/sepolicy.py b/policycoreutils/sepolicy/sepolicy.py
-index b25d3b2..0dc3b9b 100755
+index b25d3b2..9afb149 100755
 --- a/policycoreutils/sepolicy/sepolicy.py
 +++ b/policycoreutils/sepolicy/sepolicy.py
 @@ -22,6 +22,8 @@
@@ -513648,7 +513857,7 @@ index b25d3b2..0dc3b9b 100755
          newval = getattr(namespace, self.dest)
          if not newval:
              newval = []
-@@ -140,27 +165,76 @@ class CheckPolicyType(argparse.Action):
+@@ -140,102 +165,168 @@ class CheckPolicyType(argparse.Action):
  
  class CheckUser(argparse.Action):
      def __call__(self, parser, namespace, value, option_string=None):
@@ -513729,13 +513938,73 @@ index b25d3b2..0dc3b9b 100755
  def network(args):
 -    from sepolicy.network import portrecsbynum, portrecs, get_network_connect
 +    portrecs, portrecsbynum = sepolicy.gen_port_dict()
++    all_ports = []
      if args.list_ports:
-         all_ports = []
+-        all_ports = []
          for i in portrecs:
-@@ -197,45 +271,58 @@ def network(args):
-             for net in ("tcp", "udp"):
-                 _print_net(d, net, "name_bind")
- 
+             if i[0] not in all_ports:
+                 all_ports.append(i[0])
+         all_ports.sort()
+         print "\n".join(all_ports)
+ 
+-    if args.port:
+-        for port in args.port:
+-            found = False
+-            for i in portrecsbynum:
+-                if i[0] <= port and port <= i[1]:
+-                    if i[0] == i[1]:
+-                        range = i[0]
+-                    else:
+-                        range = "%s-%s" % (i[0], i[1])
+-                    found = True
+-                    print "%d: %s %s %s" % (port, i[2], portrecsbynum[i][0], range)
+-            if not found:
+-                if port < 500:
+-                    print "Undefined reserved port type"
++    for port in args.port:
++        found = False
++        for i in portrecsbynum:
++            if i[0] <= port and port <= i[1]:
++                if i[0] == i[1]:
++                    range = i[0]
+                 else:
+-                    print "Undefined port type"
+-    if args.type:
+-        for t in args.type:
+-            if (t,'tcp') in portrecs.keys():
+-                print "%s: tcp: %s" % (t, ",".join(portrecs[t,'tcp']))
+-            if (t,'udp') in portrecs.keys():
+-                print "%s: udp: %s" % (t, ",".join(portrecs[t,'udp']))
+-    if args.domain:
+-        for d in args.domain:
+-            _print_net(d, "tcp", "name_connect")
+-            for net in ("tcp", "udp"):
+-                _print_net(d, net, "name_bind")
++                    range = "%s-%s" % (i[0], i[1])
++                found = True
++                print "%d: %s %s %s" % (port, i[2], portrecsbynum[i][0], range)
++        if not found:
++            if port < 500:
++                print "Undefined reserved port type"
++            else:
++                print "Undefined port type"
++
++    for t in args.type:
++        if (t,'tcp') in portrecs.keys():
++            print "%s: tcp: %s" % (t, ",".join(portrecs[t,'tcp']))
++        if (t,'udp') in portrecs.keys():
++            print "%s: udp: %s" % (t, ",".join(portrecs[t,'udp']))
++
++    for a in args.applications:
++        d = sepolicy.get_init_transtype(a)
++        if d:
++            args.domain.append(d)
++
++    for d in args.domain:
++        _print_net(d, "tcp", "name_connect")
++        for net in ("tcp", "udp"):
++            _print_net(d, net, "name_bind")
++
 +def gui_run(args):
 +    try:
 +        import sepolicy.gui
@@ -513748,7 +514017,7 @@ index b25d3b2..0dc3b9b 100755
 +    gui = parser.add_parser("gui",
 +                            help=_('Graphical User Interface for SELinux Policy'))
 +    gui.set_defaults(func=gui_run)
-+
+ 
  def manpage(args):
      from sepolicy.manpage import ManPage, HTMLManPages, manpage_domains, manpage_roles, gen_domains
  
@@ -513814,7 +514083,29 @@ index b25d3b2..0dc3b9b 100755
  
  def gen_network_args(parser):
          net = parser.add_parser("network",
-@@ -283,7 +370,6 @@ def gen_communicate_args(parser):
+@@ -245,15 +336,18 @@ def gen_network_args(parser):
+         group.add_argument("-l", "--list", dest="list_ports",
+                            action="store_true",
+                             help=_("list all SELinux port types"))
+-        group.add_argument("-p", "--port", dest="port", default=None,
++        group.add_argument("-p", "--port", dest="port", default=[],
+                             action=CheckPort, nargs="+", type=int,
+                             help=_("show SELinux type related to the port"))
+-        group.add_argument("-t", "--type", dest="type", default=None,
++        group.add_argument("-t", "--type", dest="type", default=[],
+                             action=CheckPortType,nargs="+",
+                             help=_("Show ports defined for this SELinux type"))
+-        group.add_argument("-d", "--domain", dest="domain", default=None,
++        group.add_argument("-d", "--domain", dest="domain", default=[],
+                             action=CheckDomain, nargs="+",
+                             help=_("show ports to which this domain can bind and/or connect"))
++        group.add_argument("-a", "--application", dest="applications", default=[],
++                           nargs="+",
++                           help=_("show ports to which this application can bind and/or connect"))
+         net.set_defaults(func=network)
+ 
+ def communicate(args):
+@@ -283,7 +377,6 @@ def gen_communicate_args(parser):
      comm.set_defaults(func=communicate)
  
  def booleans(args):
@@ -513822,7 +514113,7 @@ index b25d3b2..0dc3b9b 100755
      from sepolicy import boolean_desc
      if args.all:
          rc, args.booleans = selinux.security_get_boolean_names()
-@@ -300,6 +386,7 @@ def gen_booleans_args(parser):
+@@ -300,6 +393,7 @@ def gen_booleans_args(parser):
                         action="store_true",
                         help=_("get all booleans descriptions"))
      group.add_argument("-b", "--boolean", dest="booleans", nargs="+",
@@ -513830,7 +514121,7 @@ index b25d3b2..0dc3b9b 100755
                         help=_("boolean to get description"))
      bools.set_defaults(func=booleans)
  
-@@ -319,22 +406,49 @@ def gen_transition_args(parser):
+@@ -319,22 +413,49 @@ def gen_transition_args(parser):
                         help=_("target process domain"))
      trans.set_defaults(func=transition)
  
@@ -513889,7 +514180,7 @@ index b25d3b2..0dc3b9b 100755
          if not args.command:
              raise ValueError(_("Command required for this type of policy"))
          cmd = os.path.realpath(args.command)
-@@ -346,8 +460,22 @@ def generate(args):
+@@ -346,8 +467,22 @@ def generate(args):
          mypolicy.set_program(cmd)
  
      if args.types:
@@ -513912,7 +514203,7 @@ index b25d3b2..0dc3b9b 100755
      for p in args.writepaths:
          if os.path.isdir(p):
              mypolicy.add_dir(p)
-@@ -355,6 +483,7 @@ def generate(args):
+@@ -355,6 +490,7 @@ def generate(args):
              mypolicy.add_file(p)
  
      mypolicy.set_transition_users(args.user)
@@ -513920,7 +514211,7 @@ index b25d3b2..0dc3b9b 100755
      mypolicy.set_admin_domains(args.admin_domain)
      mypolicy.set_existing_domains(args.domain)
  
-@@ -366,20 +495,34 @@ def generate(args):
+@@ -366,20 +502,34 @@ def generate(args):
  def gen_interface_args(parser):
      itf = parser.add_parser("interface",
                              help=_('List SELinux Policy interfaces'))
@@ -513958,7 +514249,7 @@ index b25d3b2..0dc3b9b 100755
                              help=_('Generate SELinux Policy module template'))
      pol.add_argument("-d", "--domain", dest="domain", default=[],
                       action=CheckDomain, nargs="*",
-@@ -387,9 +530,12 @@ def gen_generate_args(parser):
+@@ -387,9 +537,12 @@ def gen_generate_args(parser):
      pol.add_argument("-u", "--user", dest="user", default=[],
                       action=CheckUser, 
                       help=_("Enter SELinux user(s) which will transition to this domain"))
@@ -513972,7 +514263,7 @@ index b25d3b2..0dc3b9b 100755
      pol.add_argument("-n", "--name", dest="name",
                       default=None,
                       help=_("name of policy to generate"))
-@@ -397,53 +543,57 @@ def gen_generate_args(parser):
+@@ -397,53 +550,57 @@ def gen_generate_args(parser):
                       help=argparse.SUPPRESS)
      pol.add_argument("-t", "--type", dest="types", default=[], nargs="*",
                       action=CheckType, 
@@ -514056,7 +514347,7 @@ index b25d3b2..0dc3b9b 100755
      pol.set_defaults(func=generate)
  
  if __name__ == '__main__':
-@@ -455,17 +605,25 @@ if __name__ == '__main__':
+@@ -455,17 +612,25 @@ if __name__ == '__main__':
      gen_booleans_args(subparsers)
      gen_communicate_args(subparsers)
      gen_generate_args(subparsers)
@@ -514084,7 +514375,7 @@ index b25d3b2..0dc3b9b 100755
          sys.exit(0)
 +
 diff --git a/policycoreutils/sepolicy/sepolicy/__init__.py b/policycoreutils/sepolicy/sepolicy/__init__.py
-index 5e7415c..7734ba0 100644
+index 5e7415c..74d2220 100644
 --- a/policycoreutils/sepolicy/sepolicy/__init__.py
 +++ b/policycoreutils/sepolicy/sepolicy/__init__.py
 @@ -1,12 +1,15 @@
@@ -514104,7 +514395,7 @@ index 5e7415c..7734ba0 100644
  gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
  gettext.textdomain(PROGNAME)
  try:
-@@ -37,16 +40,295 @@ CLASS = 'class'
+@@ -37,16 +40,308 @@ CLASS = 'class'
  TRANSITION = 'transition'
  ROLE_ALLOW = 'role_allow'
  
@@ -514133,6 +514424,26 @@ index 5e7415c..7734ba0 100644
 +def get_types_from_attribute(attribute):
 +    return info(ATTRIBUTE,attribute)[0]["types"]
 +
++file_type_str = {}
++file_type_str["a"] = _("all files")
++file_type_str["f"] = _("regular file")
++file_type_str["d"] = _("directory")
++file_type_str["c"] = _("character device")
++file_type_str["b"] = _("block device")
++file_type_str["s"] = _("socket file")
++file_type_str["l"] = _("symbolic link")
++file_type_str["p"] = _("named pipe")
++
++trans_file_type_str = {}
++trans_file_type_str[""] = "a"
++trans_file_type_str["--"] = "f"
++trans_file_type_str["-d"] = "d"
++trans_file_type_str["-c"] = "c"
++trans_file_type_str["-b"] = "b"
++trans_file_type_str["-s"] = "s"
++trans_file_type_str["-l"] = "l"
++trans_file_type_str["-p"] = "p"
++
 +def get_file_types(setype):
 +    flist=[]
 +    mpaths={}
@@ -514162,9 +514473,9 @@ index 5e7415c..7734ba0 100644
 +    for i in permlist:
 +        if i['target'] in attributes:
 +            continue
-+        if i['target'] not in file_types:
-+            continue
 +        if i['target'].endswith("_t"):
++            if i['target'] not in file_types:
++                continue
 +            if i['target'] not in all_writes:
 +                if i['target'] != setype:
 +                    all_writes.append(i['target'])
@@ -514231,16 +514542,6 @@ index 5e7415c..7734ba0 100644
 +        pass
 +    return None
 +
-+file_type_str = {}
-+file_type_str[""] = _("all files")
-+file_type_str["--"] = _("regular file")
-+file_type_str["-d"] = _("directory")
-+file_type_str["-c"] = _("character device")
-+file_type_str["-b"] = _("block device")
-+file_type_str["-s"] = _("socket file")
-+file_type_str["-l"] = _("symbolic link")
-+file_type_str["-p"] = _("named pipe")
-+
 +fcdict=None
 +def get_fcdict(fc_path = selinux.selinux_file_context_path()):
 +        global fcdict
@@ -514252,14 +514553,17 @@ index 5e7415c..7734ba0 100644
 +        fd = open(fc_path+".homedirs", "r")
 +        fc += fd.readlines()
 +        fd.close()
++        fd = open(fc_path+".local", "r")
++        fc += fd.readlines()
++        fd.close()
 +        fcdict = {}
 +        for i in fc:
 +                rec = i.split()
 +                try:
 +                        if len(rec) > 2:
-+                            ftype = rec[1]
++                            ftype = trans_file_type_str[rec[1]]
 +                        else:
-+                            ftype = ""
++                            ftype = "a"
 +
 +                        t = rec[-1].split(":")[2]
 +                        if t in fcdict:
@@ -514403,7 +514707,7 @@ index 5e7415c..7734ba0 100644
  all_types = None
  def get_all_types():
      global all_types
-@@ -54,23 +336,31 @@ def get_all_types():
+@@ -54,23 +349,31 @@ def get_all_types():
          all_types = map(lambda x: x['name'], info(TYPE))
      return all_types
  
@@ -514448,7 +514752,7 @@ index 5e7415c..7734ba0 100644
      all_domains = []
      types=get_all_types()
      types.sort()
-@@ -81,18 +371,61 @@ def get_all_entrypoint_domains():
+@@ -81,18 +384,61 @@ def get_all_entrypoint_domains():
                  all_domains.append(m[0])
      return all_domains
  
@@ -514517,7 +514821,7 @@ index 5e7415c..7734ba0 100644
          roles = map(lambda x: x['name'], info(ROLE))
          roles.remove("object_r")
          roles.sort()
-@@ -104,115 +437,259 @@ def get_all_users():
+@@ -104,115 +450,259 @@ def get_all_users():
      if users:
          return users
      users = map(lambda x: x['name'], info(USER))
@@ -514849,7 +515153,7 @@ index 5e7415c..7734ba0 100644
  
  def boolean_category(boolean):
      booleans_dict = gen_bool_dict()
-@@ -233,18 +710,18 @@ def get_os_version():
+@@ -233,18 +723,54 @@ def get_os_version():
      os_version = ""
      pkg_name = "selinux-policy"
      try:
@@ -514876,6 +515180,42 @@ index 5e7415c..7734ba0 100644
 +        os_version = ""
  
      return os_version
++
++def reinit():
++    global all_attributes
++    global all_domains
++    global all_types
++    global booleans
++    global booleans_dict
++    global bools
++    global fcdict
++    global file_types
++    global methods
++    global methods    
++    global portrecs
++    global portrecsbynum
++    global port_types
++    global role_allows
++    global roles
++    global users
++    global user_types
++    all_attributes = None
++    all_domains = None
++    all_types = None
++    booleans = None
++    booleans_dict = None
++    bools = None
++    fcdict = None
++    file_types = None
++    methods = None
++    methods = None
++    portrecs = None
++    portrecsbynum = None
++    port_types = None
++    role_allows = None
++    roles = None
++    users = None
++    user_types = None
 diff --git a/policycoreutils/sepolicy/sepolicy/communicate.py b/policycoreutils/sepolicy/sepolicy/communicate.py
 index a179d95..9b9a09a 100755
 --- a/policycoreutils/sepolicy/sepolicy/communicate.py
@@ -515168,10 +515508,10 @@ index 26f8390..ba959ae 100644
              return out
 diff --git a/policycoreutils/sepolicy/sepolicy/gui.py b/policycoreutils/sepolicy/sepolicy/gui.py
 new file mode 100644
-index 0000000..112596d
+index 0000000..cbdf9aa
 --- /dev/null
 +++ b/policycoreutils/sepolicy/sepolicy/gui.py
-@@ -0,0 +1,2351 @@
+@@ -0,0 +1,2526 @@
 +#!/usr/bin/python -Es
 +#
 +# Copyright (C) 2013 Red Hat
@@ -515198,17 +515538,19 @@ index 0000000..112596d
 +#
 +#
 +
-+import os, sys
++from sepolicy.sedbus import SELinuxDBus
++import sys
 +import gobject
 +import sepolicy
 +import selinux
 +import pygtk
 +import sepolicy.network
 +import sepolicy.manpage
-+from sepolicy.sedbus import SELinuxDBus
 +import dbus
 +import time
++import os
 +import gettext
++import unicodedata
 +
 +PROGNAME="policycoreutils"
 +gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
@@ -515222,6 +515564,10 @@ index 0000000..112596d
 +    import __builtin__
 +    __builtin__.__dict__['_'] = unicode
 +
++reverse_file_type_str = {}
++for f in sepolicy.file_type_str:
++    reverse_file_type_str[sepolicy.file_type_str[f]] = f
++
 +enabled=[_("No"), _("Yes")]
 +action=[_("Disable"), _("Enable")]
 +def compare(a, b):
@@ -515247,12 +515593,13 @@ index 0000000..112596d
 +    OUTBOUND = 0
 +    INBOUND = 1
 +
-+    def __init__( self ):
++    def __init__( self, applicaton=None):
 +
 +        self.dbus = SELinuxDBus()
++        self.customized = self.dbus.customized()
 +        self.filter_txt = ""
 +        self.builder = gtk.Builder()                                        # BUILDER OBJ
-+        #glade_file = "/home/rhallisey/Desktop/sepolicy.glade"   # The gui is now placed in the obj
++        #glade_file = "/home/rhallisey/Desktop/sepolicy.glade"
 +        glade_file = distutils.sysconfig.get_python_lib(plat_specific = True) + "/sepolicy/sepolicy.glade"
 +        self.builder.add_from_file(glade_file)
 +        self.outer_notebook = self.builder.get_object("outer_notebook")       # The notebook obj
@@ -515263,10 +515610,13 @@ index 0000000..112596d
 +        self.applications_button_selection = self.builder.get_object("applications_selection_button")
 +        self.revert_button = self.builder.get_object("Revert_button")
 +        self.application = None
++        self.file_dialog = self.builder.get_object("add_path_dialog")
 +        self.busy_cursor = gtk.gdk.Cursor(gtk.gdk.WATCH)
 +        self.ready_cursor = gtk.gdk.Cursor(gtk.gdk.LEFT_PTR)
 +        self.current_popup = None
 +        self.import_export = None
++        self.clear_entry = True
++        self.confirmation_dialog_close = self.builder.get_object("confirmation_dialog_close")
 +
 +        # Data store dictionaries
 +        self.booldict = {}
@@ -515274,6 +515624,7 @@ index 0000000..112596d
 +        self.filedict = {}
 +        self.all_list = []
 +        self.installed_list = []
++        self.previously_modified = {}
 +        # Data store dictionaries
 +
 +        # Error check ***************************************
@@ -515316,10 +515667,12 @@ index 0000000..112596d
 +        self.systems_box = self.builder.get_object("Systems_box")
 +        self.relabel_button = self.builder.get_object("Relabel_button")
 +        self.relabel_button.set_active(os.path.exists('/.autorelabel'))
++        self.advanced_system = self.builder.get_object("advanced_system")
++        self.outer_notebook_frame = self.builder.get_object("outer_notebook_frame")
++        self.system_policy_label = self.builder.get_object("system_policy_type_label")
 +        # System Items **************************************
 +
 +        # Browse Items **************************************
-+        self.file_dialog = self.builder.get_object("add_path_dialog")
 +        self.select_button_browse = self.builder.get_object("select_button_browse")
 +        self.cancel_button_browse = self.builder.get_object("cancel_button_browse")
 +        # Browse Items **************************************
@@ -515487,8 +515840,8 @@ index 0000000..112596d
 +        self.boolean_tree_data_set = self.builder.get_object("boolean_liststore")           # Contains the tree with process type + desc (child of filter_data_set)
 +        self.boolean_model = self.builder.get_object("boolean_treemodelfilter")                         # Get_model() attaches the list to the boolean model
 +        self.boolean_tree_data_set.set_sort_column_id(2, gtk.SORT_ASCENDING)
-+        self.booleans_more_detail_window = self.builder.get_object("booleans_popup_window")
-+        self.booleans_more_detail_treeview = self.builder.get_object("more_detail_treeview")
++        self.booleans_more_detail_window = self.builder.get_object("booleans_more_detail_window")
++        self.booleans_more_detail_treeview = self.builder.get_object("booleans_more_detail_treeview")
 +        self.booleans_more_detail_tree_data_set = self.builder.get_object("booleans_more_detail_liststore")
 +        self.booleans_radio_button = self.builder.get_object("Booleans_button")
 +        self.booleans_button_tooltip_txt = self.booleans_radio_button.get_tooltip_text()
@@ -515558,6 +515911,15 @@ index 0000000..112596d
 +            self.status_bar.push(self.context_id,  _("System Status: Disabled"))
 +        else:
 +            self.set_enforce_text(status)
++        fd = open('/etc/selinux/config', 'r')
++        for l in fd.readlines():
++            if l.startswith('SELINUXTYPE='):
++                l = l.split("SELINUXTYPE=")[1]
++        fd.close()
++        if l == 'disabled':
++            self.system_interface(self.app_system_button)
++            self.enforcing_button.set_sensitive(False)
++            self.permissive_button.set_sensitive(False)
 +        # status bar  *****************************************
 +
 +        # filters *********************************************
@@ -515617,6 +515979,7 @@ index 0000000..112596d
 +        for domain in sepolicy_domains:
 +            self.combo_box_initialize(domain, None)                                  # After the user selects a path in the drop down menu call get_init_entrypoint_target(entrypoint) to get the transtype which will give you the application
 +            self.advanced_search_initialize(domain)
++            self.all_list.append(domain)
 +            self.percentage = float(float(self.loading)/float(self.list_length))
 +            self.progress_bar.set_fraction(self.percentage)
 +            self.progress_bar.set_pulse_step(self.percentage)
@@ -515626,12 +515989,12 @@ index 0000000..112596d
 +            if entrypoint:
 +                path = sepolicy.find_entrypoint_path(entrypoint)
 +                if path:
-+                   self.combo_box_initialize(path, None)        # Adds all files entrypoint paths that exists on disc into the combobox
-+                   self.advanced_search_initialize(path)
-+                   self.installed_list.append(path)
++                    self.combo_box_initialize(path, None)        # Adds all files entrypoint paths that exists on disc into the combobox
++                    self.advanced_search_initialize(path)
++                    self.installed_list.append(path)
 +
 +            self.loading += 1
-+
++#        self.customized = self.dbus.customized()
 +        dic = {
 +               "on_combo_button_clicked" : self.open_combo_menu,
 +               "on_SELinux_window_configure_event" : self.hide_combo_menu,
@@ -515648,7 +516011,7 @@ index 0000000..112596d
 +               "on_Application_file_types_treeview_configure_event" : self.resize_wrap,
 +               "on_save_delete_files_clicked" : self.delete_items_from_list_files,
 +               "on_save_delete_network_clicked" : self.delete_network_from_list_files,
-+               "on_more_types_files_button_press_event" : self.show_more_types_files,
++
 +               "on_moreTypes_treeview_files_row_activated" : self.populate_type_combo,
 +               "on_retry_button_files_clicked" : self.invalid_entry_retry,
 +               "on_make_path_recursive_toggled" : self.recursive_path,
@@ -515657,6 +516020,7 @@ index 0000000..112596d
 +               "on_select_type_files_clicked" : self.select_type_more,
 +               "on_select_button_browse_clicked" : self.on_browse_select,
 +               "on_Enforcing_button_toggled" : self.set_enforce,
++               "on_confirmation_close" : self.confirmation_close,
 +
 +               "on_app/system_button_clicked" : self.system_interface,
 +               "on_main_advanced_label_button_press_event": self.advanced_label_main,
@@ -515701,7 +516065,9 @@ index 0000000..112596d
 +               "on_Permissive_button_default_toggled" : self.change_default_mode,
 +               "on_Disabled_button_default_toggled" : self.change_default_mode,
 +               "on_Relabel_button_toggled" : self.relabel_on_reboot,
++               "on_advanced_system_button_press_event" : self.reveal_advanced_system,
 +
++               "on_files_type_combobox_changed" : self.show_more_types,
 +               "on_treemodelfilter_row_changed" : self.filter_the_data,                             # When a row is changed in the tree model filter
 +               "on_Booleans_button_toggled" : self.booleans_tab_change,
 +               "on_Files_button_toggled" : self.files_tab_change,
@@ -515711,12 +516077,12 @@ index 0000000..112596d
 +               "on_more_detail_toggled" : self.display_more_detail,
 +               "on_booleans_popup_window_delete_event" : self.closewindow,
 +               "gtk_widget_hide": self.closewindow,
-+               "gtk_main_quit": self.quit
++               "gtk_main_quit": self.closewindow
 +               }
 +
 +        self.loading_gui.hide()
 +        self.builder.connect_signals(dic)
-+        self.window.show()                                                  # Show the gui to the screen
++        self.window.show()   # Show the gui to the screen
 +        gtk.main()
 +
 +    def idle_func(self):
@@ -515810,6 +516176,7 @@ index 0000000..112596d
 +        return False
 +
 +    def network_initialize(self, application):
++        sepolicy.reinit()
 +        netd = sepolicy.network.get_network_connect(application, "tcp", "name_connect")
 +        for k in netd.keys():
 +            for t,ports in netd[k]:
@@ -515890,7 +516257,9 @@ index 0000000..112596d
 +        self.writable_files_treestore.clear()
 +        self.application_files_treestore.clear()
 +        application = self.combobox_menu.get_active_text()
-+        self.completion_entry.set_text(application)                 # Setting the text will cause the on_completion_test_changed signal to trigger calling completion_entry_selected
++        self.completion_entry.set_text(application)
++        self.idle_func()
++        # Setting the text will cause the on_completion_test_changed signal to trigger calling completion_entry_selected
 +
 +    def combo_box_initialize(self, val, desc):
 +        if val == None:
@@ -515945,7 +516314,6 @@ index 0000000..112596d
 +        return False
 +
 +    def completion_entry_selected(self, *args):
-+        self.wait_mouse()
 +        self.show_mislabeled_files_only.set_visible(False)
 +        self.mislabeled_files_label.set_visible(False)
 +        self.warning_files.set_visible(False)
@@ -515984,6 +516352,7 @@ index 0000000..112596d
 +        except IndexError:
 +            pass
 +
++        self.wait_mouse()
 +        if application != "":
 +            self.executable_files_tab.set_tooltip_text(_("File path used to enter the '%s' domain." % application))
 +            self.writable_files_tab.set_tooltip_text(_("Files to which the '%s' domain can write." % application))
@@ -516018,24 +516387,46 @@ index 0000000..112596d
 +            self.transitions_radio_button.set_tooltip_text(self.transitions_radio_button_tooltip_txt)
 +
 +        try:
++            if self.set_application_label:
++                self.applications_button_selection.set_label(self.application)
 +            self.bool_initialize(application)
++            self.idle_func()
++            self.executable_files_initialize(application)
++            self.idle_func()
++            self.network_initialize(application)
++            self.idle_func()
++            self.writable_files_initialize(application)
++            self.idle_func()
++            self.transitions_into_x_initialize(application)
++            self.idle_func()
++            self.transitions_from_x_initialize(application)
++            self.idle_func()
++            self.application_file_types_initialize(application)
++            self.idle_func()
++            self.transitions_files_initialize(application)
++            self.idle_func()
 +        except ValueError:
-+            return
++            pass
 +        except TypeError:
-+            return
-+
-+        self.executable_files_initialize(application)
-+        self.network_initialize(application)
-+        self.writable_files_initialize(application)
-+        self.transitions_into_x_initialize(application)
-+        self.transitions_from_x_initialize(application)
-+        self.application_file_types_initialize(application)
-+        self.transitions_files_initialize(application)
-+        if self.set_application_label:
-+            self.applications_button_selection.set_label(self.application)
++            pass
++        self.previously_modified_initialize()
 +        self.ready_mouse()
 +
++    def previously_modified_initialize(self):
++        items = ""
++        ctr = 0
++        for char in self.customized:
++            if char == '\n':
++                try:
++                    #items = items.split()[1]
++                    self.organize_dict(items.split('\n')[1])
++                except IndexError:
++                    self.organize_dict(items)
++                items = ""
++            items += char
++
 +    def executable_files_initialize(self, application):                         #KeyError with abrt_watch_log_t
++        sepolicy.reinit()
 +        self.entrypoints = sepolicy.get_entrypoints(application)
 +        for exe in self.entrypoints.keys():                                       # From entry_point = 0 to the number of keys in the dic
 +            if len(self.entrypoints[exe]):
@@ -516096,6 +516487,7 @@ index 0000000..112596d
 +            self.set_mislabeled(self.executable_files_treestore, path, iter, niter)
 +
 +    def writable_files_initialize(self, application):
++        sepolicy.reinit()
 +        self.writable_files = sepolicy.get_writable_files(application)                # Traversing the dictionary data struct
 +        for write in self.writable_files.keys():
 +            if len(self.writable_files[write]):
@@ -516143,6 +516535,7 @@ index 0000000..112596d
 +        return "<b>%s</b>" % f
 +
 +    def application_file_types_initialize(self, application):
++        sepolicy.reinit()
 +        self.file_types = sepolicy.get_file_types(application)
 +        for app in self.file_types.keys():
 +            if len(self.file_types[app]):
@@ -516184,8 +516577,9 @@ index 0000000..112596d
 +    def bool_initialize(self, application):
 +        for blist in sepolicy.get_bools(application):
 +            for b, active in blist:
-+                if b in self.booldict:                              # Apply recent changes to the tree
-+                    active = self.booldict[b]
++                if b in self.booldict:
++                    # Apply recent changes to the tree
++                    active = self.booldict[b]['active']
 +                desc = sepolicy.boolean_desc(b)
 +                self.boolean_initial_data_insert(b, desc , active)
 +
@@ -516246,9 +516640,9 @@ index 0000000..112596d
 +            self.transitions_from_x_treestore.set_value(iter, 0, enabled[active[0][1]])             # active[0][1] is either T or F (enabled is all the way at the top)
 +            markup = '<span foreground="blue"><u>%s</u></span>'
 +            if active[0][1]:
-+                self.transitions_from_x_treestore.set_value(niter, 2, (_("To disable this transitions, go to the " + markup % _("Boolean section."))))
++                self.transitions_from_x_treestore.set_value(niter, 2, (_("To disable this transition, go to the " + markup % _("Boolean section."))))
 +            else:
-+                self.transitions_from_x_treestore.set_value(niter, 2, (_("To enable this transitions, go to the " + markup % _("Boolean section."))))
++                self.transitions_from_x_treestore.set_value(niter, 2, (_("To enable this transition, go to the " + markup % _("Boolean section."))))
 +
 +            self.transitions_from_x_treestore.set_value(niter, 1, active[0][0])                      # active[0][0] is the Bool Name
 +            self.transitions_from_x_treestore.set_value(niter, 5, True)
@@ -516269,6 +516663,8 @@ index 0000000..112596d
 +        self.transitions_file_liststore.set_value(iter, 0, directory)
 +        self.transitions_file_liststore.set_value(iter, 1, tclass)
 +        self.transitions_file_liststore.set_value(iter, 2, dest)
++        if name == None:
++            name = '*'
 +        self.transitions_file_liststore.set_value(iter, 3, name)
 +
 +    def booleans_tab_change(self, *args):
@@ -516284,7 +516680,11 @@ index 0000000..112596d
 +        self.outer_notebook.set_current_page(3)
 +
 +    def return_to_booleans_clicked(self, model, path):
++        #event = gtk.gdk.Event(gtk.gdk.on_Transitions_button_toggled)
++        #event.window = entry.get_window()  # the gtk.gdk.Window of the widget
++        #event.send_event = True  # this means you sent the event explicitly
 +        self.booleans_tab_change()
++
 +        path =  self.transitions_from_x_treemodelsort.convert_path_to_child_path(path)
 +        it = self.transitions_from_x_filter_data_set.get_iter(path)
 +        it = self.transitions_from_x_filter_data_set.convert_iter_to_child_iter(it)
@@ -516397,27 +516797,30 @@ index 0000000..112596d
 +            if tclass != None:
 +                self.check_if_type_is_in_combo(self.files_type_combolist, tclass)
 +                self.files_type_combobox.set_active(self.map_selected_items_into_combobox(self.files_type_combolist, tclass))
-+        self.filedict[(self.application, ipage, operation)][(path, type)] = {"type": tclass, "mls": mls, "changed": True}
++        self.filedict[(self.application, ipage, operation)][(path, type)] = {"type": tclass, "mls": mls, "changed": True, "old": False}
 +
-+    def check_if_type_is_in_combo(self, combolist, type):
-+        if type not in combolist:
-+            iter = combolist.append()
-+            combolist.set_value(iter, 0, type)
-+        return True
++    def check_if_type_is_in_combo(self, combolist, ftype):
++        match = False
++        ctr = 0
++        for i in combolist:
++            if ftype == i[0]:
++                match = True
++            ctr += 1
++        if not match:
++            #'More...' is last item in the list = (ctr-1)
++            niter = combolist.get_iter(ctr-1)
++            iter = combolist.insert_before(niter)
++            combolist.set_value(iter, 0, ftype)
++        #return True
 +
 +    def populate_type_combo(self, tree, loc, *args):
 +        iter = self.more_types_files_liststore.get_iter(loc)
 +        ftype = self.more_types_files_liststore.get_value(iter, 0)
-+        iter = self.files_type_combolist.append()
-+        self.files_type_combolist.set_value(iter, 0, ftype)
++        self.check_if_type_is_in_combo(self.files_type_combolist, ftype)
 +        self.files_type_combobox.set_active(self.map_selected_items_into_combobox(self.files_type_combolist, ftype))
 +        self.popup_window_files.show()
 +        self.moreTypes_window_files.hide()
 +
-+    def show_more_types_files(self, *args):
-+        self.popup_window_files.hide()
-+        self.moreTypes_window_files.show()
-+
 +    def strip_domain(self, domain):
 +        if domain == None:
 +            return
@@ -516448,6 +516851,10 @@ index 0000000..112596d
 +
 +        self.more_types_files_liststore.clear()
 +        try:
++            for files in sepolicy.file_type_str:
++                iter = self.files_class_combolist.append()
++                self.files_class_combolist.set_value(iter, 0, sepolicy.file_type_str[files])
++
 +            if ipage == self.EXE_PAGE and self.entrypoints != None:
 +                for exe in self.entrypoints.keys():
 +                    if exe.startswith(compare):
@@ -516474,16 +516881,14 @@ index 0000000..112596d
 +                            self.files_type_combolist.set_value(iter, 0, app)
 +                        iter = self.more_types_files_liststore.append()
 +                        self.more_types_files_liststore.set_value(iter, 0, app)
-+
-+            for files in sepolicy.file_type_str:
-+                iter = self.files_class_combolist.append()
-+                self.files_class_combolist.set_value(iter, 0, sepolicy.file_type_str[files])
-+            self.files_class_combobox.set_active(0)
++                self.files_class_combobox.set_active(0)
 +        except AttributeError:
++            print "error"
 +            pass
 +        self.files_type_combobox.set_active(0)
 +        self.files_mls_combobox.set_active(0)
-+
++        iter = self.files_type_combolist.append()
++        self.files_type_combolist.set_value(iter, 0, 'More..')
 +    def add_button_network_clicked(self, *args):
 +        if self.application != None:
 +            self.popup_network_label.set_text((_("Add Network Port for %s.  Ports will be created when update is applied."))% self.application)
@@ -516501,7 +516906,7 @@ index 0000000..112596d
 +        mls = 1
 +        self.modify_mode=True
 +        ipage = self.inner_notebook_network.get_current_page()
-+        if (self.application, ipage, operation) not in self.filedict:
++        if (self.application, ipage, operation) not in self.portdict:
 +            self.portdict[(self.application, ipage, operation)] = {}
 +        if ipage == self.OUTBOUND:
 +            row = self.out_network_treeview.get_selection()
@@ -516543,7 +516948,7 @@ index 0000000..112596d
 +            elif protocol == "udp":
 +                self.network_udp_button.set_active(True)
 +
-+        self.portdict[(self.application, ipage, operation)][(port, protocol)] = {"type": type, "mls": mls, "changed": True}
++        self.portdict[(self.application, ipage, operation)][(port, protocol)] = {"type": type, "mls": mls, "changed": True, "old": False}
 +
 +    def map_selected_items_into_combobox(self, combolist, match):
 +        ctr = 0
@@ -516595,14 +517000,20 @@ index 0000000..112596d
 +        #self.portdict[self.application] = []
 +
 +    def bools_show_modified_only(self, checkbutton):
-+        self.boolean_tree_data_set.clear()
++        append_list = []
 +        if checkbutton.get_active() == True:
 +            for bools in self.booldict:
++                for row in self.boolean_tree_data_set:
++                    if row[2] == bools:
++                        append_list.append(bools)
++            self.boolean_tree_data_set.clear()
++            for i in append_list:
 +                iter = self.boolean_tree_data_set.append()
-+                self.boolean_tree_data_set.set_value(iter, 0, self.booldict[bools])
-+                self.boolean_tree_data_set.set_value(iter, 1, sepolicy.boolean_desc(bools))
-+                self.boolean_tree_data_set.set_value(iter, 2, bools)
++                self.boolean_tree_data_set.set_value(iter, 0, self.booldict[i]['active'])
++                self.boolean_tree_data_set.set_value(iter, 1, sepolicy.boolean_desc(i))
++                self.boolean_tree_data_set.set_value(iter, 2, i)
 +        elif self.application != None:
++            self.boolean_tree_data_set.clear()
 +            self.bool_initialize(self.application)
 +
 +    def files_show_modified_only(self, checkbutton):
@@ -516762,8 +517173,14 @@ index 0000000..112596d
 +            return True
 +        return False
 +
++    def show_more_types(self, *args):
++        if self.files_type_combobox.get_active_text() == 'More..':
++            self.popup_window_files.hide()
++            self.moreTypes_window_files.show()
++
 +    def update_to_files(self, *args):
-+        self.files_add = True                                # Insert Function will be used in the future
++        self.files_add = True
++        # Insert Function will be used in the future
 +        insert_txt = self.files_path_entry.get_text()
 +        if self.error_check_files(insert_txt):
 +            return
@@ -516800,8 +517217,9 @@ index 0000000..112596d
 +            self.application_files_treestore.set_value(iter, 2, tclass)
 +            if operation == "Modify":
 +                self.application_files_treestore.remove(self.delete_old_item)
-+        self.filedict[(self.application, ipage, operation)][(insert_txt, tclass)] = {"type": type, "mls": mls, "changed": False}
++        self.filedict[(self.application, ipage, operation)][(insert_txt, tclass)] = {"type": type, "mls": mls, "changed": False, "old": False}
 +        self.files_add = False
++        self.recursive_path_toggle.set_active(False)
 +        self.popup_window_files.hide()
 +        self.window.set_sensitive(True)
 +
@@ -516839,7 +517257,7 @@ index 0000000..112596d
 +            self.in_network_tree_data_set.set_value(iter, 2, port_type)
 +            if operation == "Modify":
 +                self.in_network_tree_data_set.remove(self.delete_old_item)
-+        self.portdict[(self.application, ipage, operation)][(ports, protocol)] = {"type": port_type, "mls": mls, "changed": False}
++        self.portdict[(self.application, ipage, operation)][(ports, protocol)] = {"type": port_type, "mls": mls, "changed": False, "old": False}
 +        self.network_add = False
 +        self.popup_window_network.hide()
 +        self.window.set_sensitive(True)
@@ -516976,30 +517394,32 @@ index 0000000..112596d
 +    def populate_booldict(self, model, iter):
 +        name = model.get_value(iter, 2)
 +        enabled = model.get_value(iter, 0)
-+        if self.booldict.has_key(name):
++        if self.booldict.has_key(name) and not self.booldict[name]['old']:
 +            self.booldict.pop(name)
 +        else:
-+            self.booldict[name] = enabled
++            self.booldict[name]['active'] = enabled
++            self.booldict[name]['old'] = False
++
 +    def update_gui(self, *args):
 +        self.update_or_revert = "update"
 +        self.update_treestore.clear()
 +        networktabs=[("Outbound"), ("Inbound")]
 +        filetabs=[("Executable Files"), ("Writable Files"), ("Application File Type")]
++        for bools in self.booldict:
++            if not self.booldict[bools]['old']:
++                iter = self.update_treestore.append(None)
++                self.update_treestore.set_value(iter, 0, True)
++                self.update_treestore.set_value(iter, 1,  sepolicy.boolean_desc(bools))
++                niter = self.update_treestore.append(iter)
++                self.update_treestore.set_value(niter, 1, (_("SELinux name: %s"))% bools)
++                self.update_treestore.set_value(iter, 4, True)
++                self.update_treestore.set_value(niter, 4, False)
++                self.update_treestore.set_value(iter, 2, "Booleans")
++                self.update_treestore.set_value(iter, 3, action[self.booldict[bools]['active']])
 +
-+        for bool in self.booldict:
-+            desc = sepolicy.boolean_desc(bool)
-+            iter = self.update_treestore.append(None)
-+            self.update_treestore.set_value(iter, 0, True)
-+            self.update_treestore.set_value(iter, 1, desc)
-+            niter = self.update_treestore.append(iter)
-+            self.update_treestore.set_value(niter, 1, (_("SELinux name: %s"))% bool)
-+            self.update_treestore.set_value(iter, 4, True)
-+            self.update_treestore.set_value(niter, 4, False)
-+            self.update_treestore.set_value(iter, 2, "Booleans")
-+            self.update_treestore.set_value(iter, 3, action[self.booldict[bool]])
 +        for app, ipage, operation in self.filedict:
 +            for path, tclass in self.filedict[app, ipage, operation]:
-+                if self.filedict[(app, ipage, operation)][(path, tclass)]["changed"] == False:
++                if not self.filedict[(app, ipage, operation)][(path, tclass)]["changed"] and not self.filedict[(app, ipage, operation)][(path, tclass)]["old"]:
 +                    iter = self.update_treestore.append(None)
 +                    self.update_treestore.set_value(iter, 0, True)
 +                    self.update_treestore.set_value(iter, 2, filetabs[ipage])
@@ -517024,7 +517444,7 @@ index 0000000..112596d
 +
 +        for app, ipage, operation in self.portdict:
 +            for ports, protocol in self.portdict[app, ipage, operation]:
-+                if self.portdict[(app, ipage, operation)][(ports, protocol)]["changed"] == False:
++                if not self.portdict[(app, ipage, operation)][(ports, protocol)]["changed"] and not self.portdict[app, ipage, operation][ports, protocol]["old"]:
 +                    iter = self.update_treestore.append(None)
 +                    self.update_treestore.set_value(iter, 0, True)
 +                    self.update_treestore.set_value(iter, 2, networktabs[ipage])
@@ -517049,8 +517469,8 @@ index 0000000..112596d
 +        self.update_window.show()
 +        self.window.set_sensitive(False)
 +
-+    def system_interface(self, *args):
-+        if self.app_system_button.get_label() == "System":
++    def system_interface(self, button, *args):
++        if button.get_label() == "System":
 +            self.applications_button_selection.set_label("System")
 +            self.app_system_button.set_label("Applications")
 +            self.main_selection_window.hide()
@@ -517062,11 +517482,11 @@ index 0000000..112596d
 +            self.systems_box.set_visible(True)
 +            self.system_button.set_visible(True)
 +            #self.window.set_resizable(False)
-+            resize = self.window.get_default_size()
-+            self.window.resize(resize[0], resize[1])
++            #resize = self.window.get_default_size()
++            #self.window.resize(resize[0], resize[1])
 +            self.idle_func()
 +
-+        elif self.app_system_button.get_label() == "Applications":
++        elif button.get_label() == "Applications":
 +            self.applications_button_selection.set_label("Applications")
 +            self.app_system_button.set_label("System")
 +            self.main_selection_window.hide()
@@ -517181,6 +517601,7 @@ index 0000000..112596d
 +        except dbus.exceptions.DBusException, e:
 +            print e
 +        self.completion_entry_selected()
++        self.customized = self.dbus.customized()
 +        self.ready_mouse()
 +
 +    def ipage_value_lookup(self, lookup):
@@ -517208,20 +517629,20 @@ index 0000000..112596d
 +                try:
 +                    self.bool_revert = self.get_attributes_update(self.update_treestore[ctr, 0][1])
 +                    fclass_or_protocol = self.get_attributes_update(self.update_treestore[ctr,1][1])
-+                    type = self.get_attributes_update(self.update_treestore[ctr,2][1])
++                    ftype = self.get_attributes_update(self.update_treestore[ctr,2][1])
 +                except IndexError:
 +                    pass
 +                popbools = []
 +                if ipage == "Booleans":
 +                    for bools in self.booldict:
 +                        if bools == self.bool_revert:
-+                            self.update_buffer += "boolean -m -%d %s\n" % (self.booldict[bools], bools)
++                            self.update_buffer += "boolean -m -%d %s\n" % (self.booldict[bools]['active'], bools)
 +                            popbools.append(self.bool_revert)
 +                    for pop in popbools:
 +                        self.booldict.pop(pop)
 +                elif self.update_treestore[ctr][2] == "Inbound" or self.update_treestore[ctr][2] == "Outbound":
 +                    for ports in self.portdict:
-+                        if self.portdict[self.application, ipage, operation][path_or_port, fclass_or_protocol]["type"] == type:
++                        if self.portdict[self.application, ipage, operation][path_or_port, fclass_or_protocol]["type"] == ftype:
 +                            porttype = self.portdict[self.application, ipage, operation][(path_or_port, fclass_or_protocol)]["type"]
 +                            buf_operation = self.translate_operation(operation)
 +                            self.update_buffer += "port -%s -t %s -p %s %s\n" % (buf_operation, porttype, fclass_or_protocol, path_or_port)
@@ -517229,12 +517650,13 @@ index 0000000..112596d
 +                            break
 +                else:
 +                    for files in self.filedict:
-+                        if self.filedict[self.application, ipage, operation][path_or_port, fclass_or_protocol]["type"] == type:
++                        if self.filedict[self.application, ipage, operation][path_or_port, fclass_or_protocol]["type"] == ftype:
++
++
 +                            buf_operation = self.translate_operation(operation)
-+                            self.update_buffer += "fcontext -%s -t -'%s' %s\n" % (buf_operation, type, path_or_port)
++                            self.update_buffer += "fcontext -%s -f %s -t %s %s\n" % (buf_operation, reverse_file_type_str[fclass_or_protocol], ftype, path_or_port)
++                            print (self.update_buffer)
 +                            self.filedict[self.application, ipage, operation].pop((path_or_port, fclass_or_protocol))
-+                            if operation == "Modify":
-+                                self.filedict[self.application, ipage, operation].pop((path_or_port, fclass_or_protocol))
 +                            break
 +
 +            ctr += 1
@@ -517245,6 +517667,16 @@ index 0000000..112596d
 +            self.window.set_sensitive(True)
 +            self.window.show()
 +
++    def reveal_advanced_system(self, label, *args):
++        if label.get_text() == "Advanced >>":
++            label.set_text("Advanced <<")
++            self.system_policy_label.set_visible(True)
++            self.system_policy_type_combobox.set_visible(True)
++        elif label.get_text() == "Advanced <<":
++            label.set_text("Advanced >>")
++            self.system_policy_label.set_visible(False)
++            self.system_policy_type_combobox.set_visible(False)
++
 +    def reveal_advanced(self, label, *args):
 +        if label.get_text() == "Advanced >>":
 +            self.mls_label_files.set_visible(True)
@@ -517260,7 +517692,6 @@ index 0000000..112596d
 +            label.set_text("Advanced >>")
 +
 +    def advanced_search_initialize(self, domain):
-+        self.all_list.append(domain)
 +        iter = self.advanced_search_liststore.append()
 +        try:
 +            if domain[0] == '/':
@@ -517305,6 +517736,8 @@ index 0000000..112596d
 +                self.idle_func()
 +
 +        elif label == "Installed":
++            if self.installed_list == []:
++                return
 +            for items in self.installed_list:
 +                self.advanced_search_initialize(items)
 +                self.idle_func()
@@ -517381,6 +517814,7 @@ index 0000000..112596d
 +        self.dbus.change_policy_type(self.system_policy_type_combobox.get_active_text())
 +
 +    def change_default_mode(self, button):
++        self.enabled_changed(button)
 +        if button.get_active():
 +            self.dbus.change_default_policy(button.get_label().lower())
 +
@@ -517388,12 +517822,14 @@ index 0000000..112596d
 +        self.file_dialog.set_action(gtk.FILE_CHOOSER_ACTION_OPEN)
 +        self.file_dialog.set_title("Import Configuration")
 +        self.file_dialog.show()
++        #self.file_dialog.set_uri('/tmp')
 +        self.import_export = 'Import'
 +
 +    def export_config_show(self, *args):
 +        self.file_dialog.set_action(gtk.FILE_CHOOSER_ACTION_SAVE)
 +        self.file_dialog.set_title("Export Configuration")
 +        self.file_dialog.show()
++        #self.file_dialog.set_filter('/tmp')
 +        self.import_export = 'Export'
 +
 +    def import_or_export(self, button, *args):
@@ -517434,14 +517870,55 @@ index 0000000..112596d
 +            pass
 +        self.ready_mouse()
 +
++    def init_dictionary(self, dic, app, ipage, operation, p, q, ftype, mls, changed, old):
++        if (app, ipage, operation) not in dic:
++                    dic[app, ipage, operation] = {}
++        if (p, q) not in dic[app, ipage, operation]:
++                    dic[app, ipage, operation][p, q] = {'type': ftype, 'mls': mls, 'changed': changed, 'old': old}
++    def convert_unicode(self, unicodedata):
++        return unicodedata.encode('ascii')
++    def organize_dict(self, d):
++        if d.startswith('boolean') and d != 'boolean -D':
++            boolname = self.convert_unicode(d.split()[3])
++            value = d.split()[2]
++            self.booldict[boolname] = {'active': self.translate_bool(value), 'old': True}
++
++        elif d.startswith('port') and d != 'port -D':
++            port = self.convert_unicode(d.split()[-1])
++            protocol = self.convert_unicode(d.split()[5])
++            ptype = self.convert_unicode(d.split()[3])
++            for ipage in [0,1]:
++                self.init_dictionary(self.portdict, self.application, ipage, 'Add', port, protocol, ptype, 0, False, True)
++                self.portdict[self.application, ipage, 'Add'][port, protocol] = {'type': ptype, 'mls': 0, 'changed': False, 'old': True}
++
++        elif d.startswith('fcontext') and d != 'fcontext -D':
++            path = self.convert_unicode(d.split()[-1]).strip("'")
++            label = self.convert_unicode(d.split()[6])
++            fclass = self.convert_unicode(d.split()[3])
++            if fclass == "'all":
++                fclass = "all files"
++            for ipage in [0,2]:
++                self.init_dictionary(self.filedict, self.application, ipage, 'Add', path, fclass, label, 0, False, True)
++                self.filedict[self.application, ipage, 'Add'][path, fclass] = {'type': label, 'mls': 0, 'changed': False, 'old': True}
++
++    def translate_bool(self, b):
++        b = b.split('-')[1]
++        if b == '0':
++            return False
++        if b == '1':
++            return True
++
 +    def relabel_on_reboot(self, widget, *args):
 +        self.dbus.relabel_on_boot(widget.get_active())
 +
 +    def closewindow(self, window, *args):
 +        window.hide()
++        self.recursive_path_toggle.set_active(False)
 +        self.window.set_sensitive(True)
 +        if self.moreTypes_window_files == window:
 +            self.popup_window_files.show()
++            if self.files_type_combobox.get_active_text() == 'More...':
++                self.files_type_combobox.set_active(0)
 +        if self.error_check_window == window:
 +            self.window.set_sensitive(False)
 +            if self.files_add:
@@ -517479,6 +517956,7 @@ index 0000000..112596d
 +    def close_add_files_popup(self, *args):
 +        self.popup_window_files.hide()
 +        self.window.set_sensitive(True)
++        self.recursive_path_toggle.set_active(False)
 +    def close_update_popup(self,*args):
 +        self.update_window.hide()
 +        self.window.set_sensitive(True)
@@ -517491,6 +517969,43 @@ index 0000000..112596d
 +        self.window.window.set_cursor(self.ready_cursor)
 +        self.idle_func()
 +
++    def verify(self, message, title="" ):
++        dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_INFO,
++                                gtk.BUTTONS_YES_NO,
++                                message)
++        dlg.set_title(title)
++        dlg.set_position(gtk.WIN_POS_MOUSE)
++        dlg.show_all()
++        rc = dlg.run()
++        dlg.destroy()
++        return rc
++
++    def enabled_changed(self, radio):
++        disabled = None
++        enabled = None
++        if not radio.get_active():
++            disabled = radio.get_label()
++        else:
++            enabled = radio.get_label()
++
++        if enabled == 'Disabled' and disabled != 'Disabled' :
++            if self.verify(_("Changing to SELinux disabled requires a reboot.  It is not recommended.  If you later decide to turn SELinux back on, the system will be required to relabel.  If you just want to see if SELinux is causing a problem on your system, you can go to permissive mode which will only log errors and not enforce SELinux policy.  Permissive mode does not require a reboot    Do you wish to continue?")) == gtk.RESPONSE_NO:
++                self.relabel_button.set_active(False)
++                self.relabel_on_reboot(self.relabel_button)
++                self.relabel_button.set_sensitive(True)
++
++        elif enabled != 'Disabled' and disabled == 'Disabled':
++            if self.verify(_("Changing to SELinux enabled will cause a relabel of the entire file system on the next boot. Relabeling takes a long time depending on the size of the file system.  Do you wish to continue?")) == gtk.RESPONSE_NO:
++                self.relabel_button.set_active(True)
++                self.relabel_on_reboot(self.relabel_button)
++                self.relabel_button.set_sensitive(False)
++
++    def confirmation_close(self, button, *args):
++        if len(self.update_treestore) > 0:
++            if self.verify(_("You have not pushed your update.\n Are you sure you want to quit?"), _("Loss of data Dialog")) == gtk.RESPONSE_NO:
++                return True
++        self.quit(self.window)
++
 +    def quit(self, widget):
 +        sys.exit(0)
 +
@@ -518294,7 +518809,7 @@ index 66efe26..970f4c8 100755
      return d
 diff --git a/policycoreutils/sepolicy/sepolicy/sedbus.py b/policycoreutils/sepolicy/sepolicy/sedbus.py
 new file mode 100644
-index 0000000..07d5a98
+index 0000000..0a30450
 --- /dev/null
 +++ b/policycoreutils/sepolicy/sepolicy/sedbus.py
 @@ -0,0 +1,41 @@
@@ -518310,26 +518825,26 @@ index 0000000..07d5a98
 +class SELinuxDBus (object):
 +    def __init__ (self):
 +        self.bus = dbus.SystemBus()
-+        self.dbus_object = self.bus.get_object("org.fedoraproject.selinux", "/org/fedoraproject/selinux/object")
++        self.dbus_object = self.bus.get_object("org.selinux", "/org/selinux/object")
 +
 +    @polkit.enable_proxy
 +    def semanage (self, buf):
-+        ret = self.dbus_object.semanage(buf, dbus_interface = "org.fedoraproject.selinux")
++        ret = self.dbus_object.semanage(buf, dbus_interface = "org.selinux")
 +        return ret
 +
 +    @polkit.enable_proxy
 +    def restorecon (self, path):
-+        ret = self.dbus_object.restorecon(path, dbus_interface = "org.fedoraproject.selinux")
++        ret = self.dbus_object.restorecon(path, dbus_interface = "org.selinux")
 +        return ret
 +
 +    @polkit.enable_proxy
 +    def setenforce (self, value):
-+        ret = self.dbus_object.setenforce(value, dbus_interface = "org.fedoraproject.selinux")
++        ret = self.dbus_object.setenforce(value, dbus_interface = "org.selinux")
 +        return ret
 +
 +    @polkit.enable_proxy
 +    def customized (self):
-+        ret = self.dbus_object.customized(dbus_interface = "org.fedoraproject.selinux")
++        ret = self.dbus_object.customized(dbus_interface = "org.selinux")
 +        return ret
 +
 +if __name__ == "__main__":
@@ -518341,11 +518856,12 @@ index 0000000..07d5a98
 +        print e
 diff --git a/policycoreutils/sepolicy/sepolicy/sepolicy.glade b/policycoreutils/sepolicy/sepolicy/sepolicy.glade
 new file mode 100644
-index 0000000..da6318f
+index 0000000..3ea562c
 --- /dev/null
 +++ b/policycoreutils/sepolicy/sepolicy/sepolicy.glade
-@@ -0,0 +1,3814 @@
+@@ -0,0 +1,3904 @@
 +<?xml version="1.0" encoding="UTF-8"?>
++<!-- Generated with glade 3.15.2 on Wed Aug 14 16:19:58 2013 -->
 +<interface>
 +  <!-- interface-requires gtk+ 3.8 -->
 +  <object class="GtkListStore" id="Advanced_search_liststore">
@@ -518406,12 +518922,12 @@ index 0000000..da6318f
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <child>
-+              <object class="GtkButton" id="Fix_label_cancel">
-+                <property name="label" translatable="yes">Cancel</property>
++              <object class="GtkButton" id="fix_label_ok_button">
++                <property name="label" translatable="yes">OK</property>
 +                <property name="visible">True</property>
 +                <property name="can_focus">True</property>
 +                <property name="receives_default">True</property>
-+                <signal name="clicked" handler="on_Fix_label_cancel_clicked" swapped="no"/>
++                <signal name="clicked" handler="on_fix_label_ok_button_clicked" swapped="no"/>
 +              </object>
 +              <packing>
 +                <property name="expand">False</property>
@@ -518421,18 +518937,18 @@ index 0000000..da6318f
 +              </packing>
 +            </child>
 +            <child>
-+              <object class="GtkButton" id="fix_label_ok_button">
-+                <property name="label" translatable="yes">OK</property>
++              <object class="GtkButton" id="Fix_label_cancel">
++                <property name="label" translatable="yes">Cancel</property>
 +                <property name="visible">True</property>
 +                <property name="can_focus">True</property>
 +                <property name="receives_default">True</property>
-+                <signal name="clicked" handler="on_fix_label_ok_button_clicked" swapped="no"/>
++                <signal name="clicked" handler="on_Fix_label_cancel_clicked" swapped="no"/>
 +              </object>
 +              <packing>
 +                <property name="expand">False</property>
 +                <property name="fill">False</property>
 +                <property name="pack_type">end</property>
-+                <property name="position">0</property>
++                <property name="position">1</property>
 +              </packing>
 +            </child>
 +          </object>
@@ -518465,12 +518981,11 @@ index 0000000..da6318f
 +                <property name="can_focus">True</property>
 +                <property name="invisible_char">●</property>
 +                <property name="text" translatable="yes">Select domain</property>
-+                <property name="invisible_char_set">True</property>
 +                <property name="primary_icon_stock">gtk-find</property>
 +                <property name="primary_icon_activatable">False</property>
 +                <property name="secondary_icon_activatable">False</property>
-+                <signal name="changed" handler="on_completion_entry_changed" swapped="no"/>
 +                <signal name="activate" handler="on_SELinux_window_configure_event" swapped="no"/>
++                <signal name="changed" handler="on_completion_entry_changed" swapped="no"/>
 +              </object>
 +              <packing>
 +                <property name="expand">False</property>
@@ -518525,199 +519040,1262 @@ index 0000000..da6318f
 +      </object>
 +    </child>
 +  </object>
-+  <object class="GtkWindow" id="SELinux_window">
++  <object class="GtkTreeStore" id="Update_treestore">
++    <columns>
++      <!-- column-name Select -->
++      <column type="gboolean"/>
++      <!-- column-name Description -->
++      <column type="gchararray"/>
++      <!-- column-name Section -->
++      <column type="gchararray"/>
++      <!-- column-name Action -->
++      <column type="gchararray"/>
++      <!-- column-name Visible -->
++      <column type="gboolean"/>
++    </columns>
++  </object>
++  <object class="GtkFileChooserDialog" id="add_path_dialog">
 +    <property name="can_focus">False</property>
-+    <property name="title" translatable="yes">SELinux Policy Manager</property>
++    <property name="border_width">5</property>
++    <property name="role">GtkFileChooserDialog</property>
++    <property name="modal">True</property>
++    <property name="type_hint">normal</property>
++    <property name="action">save</property>
++    <child internal-child="vbox">
++      <object class="GtkBox" id="filechooserdialog-vbox1">
++        <property name="can_focus">False</property>
++        <child internal-child="action_area">
++          <object class="GtkButtonBox" id="filechooserdialog-action_area1">
++            <property name="can_focus">False</property>
++          </object>
++          <packing>
++            <property name="expand">False</property>
++            <property name="fill">True</property>
++            <property name="pack_type">end</property>
++            <property name="position">0</property>
++          </packing>
++        </child>
++      </object>
++    </child>
++  </object>
++  <object class="GtkTreeModelFilter" id="advanced_treemodel_filter">
++    <property name="child_model">Advanced_search_liststore</property>
++  </object>
++  <object class="GtkTreeModelSort" id="advanced_treemodel_sort">
++    <property name="model">advanced_treemodel_filter</property>
++  </object>
++  <object class="GtkTreeStore" id="application_filetypes_treestore">
++    <columns>
++      <!-- column-name File -->
++      <column type="gchararray"/>
++      <!-- column-name Description -->
++      <column type="gchararray"/>
++      <!-- column-name gchararray1 -->
++      <column type="gchararray"/>
++      <!-- column-name Label -->
++      <column type="gboolean"/>
++      <!-- column-name Mislabled -->
++      <column type="gboolean"/>
++      <!-- column-name Cur -->
++      <column type="gchararray"/>
++      <!-- column-name Con -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkTreeModelFilter" id="application_filetypes_treemodelfilter">
++    <property name="child_model">application_filetypes_treestore</property>
++  </object>
++  <object class="GtkTreeModelSort" id="application_filetypes_treemodelsort">
++    <property name="model">application_filetypes_treemodelfilter</property>
++  </object>
++  <object class="GtkListStore" id="application_liststore">
++    <columns>
++      <!-- column-name Application -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkListStore" id="application_tree_list">
++    <columns>
++      <!-- column-name Process -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkTreeModelFilter" id="application_treemodelfilter">
++    <property name="child_model">application_liststore</property>
++  </object>
++  <object class="GtkListStore" id="boolean_liststore">
++    <columns>
++      <!-- column-name Active -->
++      <column type="gboolean"/>
++      <!-- column-name Description -->
++      <column type="gchararray"/>
++      <!-- column-name Name -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkTreeModelFilter" id="boolean_treemodelfilter">
++    <property name="child_model">boolean_liststore</property>
++  </object>
++  <object class="GtkTreeModelSort" id="boolean_treemodelsort">
++    <property name="model">boolean_treemodelfilter</property>
++  </object>
++  <object class="GtkListStore" id="booleans_more_detail_liststore">
++    <columns>
++      <!-- column-name Detail -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkWindow" id="confirmation_dialog_close">
++    <property name="can_focus">False</property>
++    <property name="type">popup</property>
++    <property name="modal">True</property>
++    <property name="window_position">center-on-parent</property>
++    <property name="default_width">440</property>
++    <property name="default_height">250</property>
++    <property name="transient_for">SELinux_window</property>
++    <child>
++      <object class="GtkVBox" id="box5">
++        <property name="visible">True</property>
++        <property name="can_focus">False</property>
++        <child>
++          <object class="GtkLabel" id="label15">
++            <property name="visible">True</property>
++            <property name="can_focus">False</property>
++            <property name="label" translatable="yes">All previous changes will be lost.  Save you changes to keep them.</property>
++          </object>
++          <packing>
++            <property name="expand">True</property>
++            <property name="fill">True</property>
++            <property name="position">0</property>
++          </packing>
++        </child>
++        <child>
++          <object class="GtkHBox" id="box9">
++            <property name="visible">True</property>
++            <property name="can_focus">False</property>
++            <child>
++              <object class="GtkButton" id="ok_button_close">
++                <property name="label" translatable="yes">OK</property>
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="receives_default">True</property>
++                <signal name="clicked" handler="gtk_main_quit" swapped="no"/>
++              </object>
++              <packing>
++                <property name="expand">False</property>
++                <property name="fill">True</property>
++                <property name="pack_type">end</property>
++                <property name="position">0</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkButton" id="cancel_button_close">
++                <property name="label" translatable="yes">Cancel</property>
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="receives_default">True</property>
++                <signal name="clicked" handler="on_confirmation_close" swapped="no"/>
++              </object>
++              <packing>
++                <property name="expand">False</property>
++                <property name="fill">True</property>
++                <property name="pack_type">end</property>
++                <property name="position">1</property>
++              </packing>
++            </child>
++          </object>
++          <packing>
++            <property name="expand">False</property>
++            <property name="fill">True</property>
++            <property name="position">1</property>
++          </packing>
++        </child>
++      </object>
++    </child>
++  </object>
++  <object class="GtkListStore" id="delete_files_liststore">
++    <columns>
++      <!-- column-name Select -->
++      <column type="gboolean"/>
++      <!-- column-name Path -->
++      <column type="gchararray"/>
++      <!-- column-name Label -->
++      <column type="gchararray"/>
++      <!-- column-name Class -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkListStore" id="delete_network_liststore">
++    <columns>
++      <!-- column-name Select -->
++      <column type="gboolean"/>
++      <!-- column-name Port -->
++      <column type="gchararray"/>
++      <!-- column-name Protocol -->
++      <column type="gchararray"/>
++      <!-- column-name Type -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkEntryCompletion" id="entrycompletion_obj">
++    <signal name="match-selected" handler="on_SELinux_window_configure_event" swapped="no"/>
++    <signal name="match-selected" handler="on_completion_entry_changed" swapped="no"/>
++    <signal name="match-selected" handler="on_entrycompletion_obj_match_selected" swapped="no"/>
++  </object>
++  <object class="GtkWindow" id="error_check_window">
++    <property name="can_focus">False</property>
++    <property name="type">popup</property>
++    <property name="resizable">False</property>
++    <property name="modal">True</property>
++    <property name="window_position">center-on-parent</property>
++    <property name="default_width">440</property>
++    <property name="default_height">250</property>
++    <property name="transient_for">SELinux_window</property>
++    <child>
++      <object class="GtkVBox" id="vbox27">
++        <property name="visible">True</property>
++        <property name="can_focus">False</property>
++        <child>
++          <object class="GtkLabel" id="error_check_label">
++            <property name="visible">True</property>
++            <property name="can_focus">False</property>
++            <property name="label" translatable="yes">The entry that was entered is incorrect.  Please try again in the ex:/.../... format.</property>
++            <property name="wrap">True</property>
++          </object>
++          <packing>
++            <property name="expand">True</property>
++            <property name="fill">True</property>
++            <property name="position">0</property>
++          </packing>
++        </child>
++        <child>
++          <object class="GtkHBox" id="hbox22">
++            <property name="visible">True</property>
++            <property name="can_focus">False</property>
++            <child>
++              <object class="GtkLabel" id="label20">
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
++              </object>
++              <packing>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++                <property name="position">0</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkButton" id="retry_button_files">
++                <property name="label" translatable="yes">Retry</property>
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="receives_default">True</property>
++                <signal name="clicked" handler="on_retry_button_files_clicked" swapped="no"/>
++              </object>
++              <packing>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++                <property name="position">1</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkLabel" id="label21">
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
++              </object>
++              <packing>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++                <property name="position">2</property>
++              </packing>
++            </child>
++          </object>
++          <packing>
++            <property name="expand">False</property>
++            <property name="fill">False</property>
++            <property name="position">1</property>
++          </packing>
++        </child>
++      </object>
++    </child>
++  </object>
++  <object class="GtkTreeStore" id="executable_files_treestore">
++    <columns>
++      <!-- column-name Executable -->
++      <column type="gchararray"/>
++      <!-- column-name SELinux -->
++      <column type="gchararray"/>
++      <!-- column-name Class -->
++      <column type="gchararray"/>
++      <!-- column-name Fix -->
++      <column type="gboolean"/>
++      <!-- column-name Mislabled -->
++      <column type="gboolean"/>
++      <!-- column-name Cur -->
++      <column type="gchararray"/>
++      <!-- column-name Con -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkTreeModelFilter" id="executable_files_treemodelfilter">
++    <property name="child_model">executable_files_treestore</property>
++  </object>
++  <object class="GtkTreeModelSort" id="executable_files_treemodelsort">
++    <property name="model">executable_files_treemodelfilter</property>
++  </object>
++  <object class="GtkListStore" id="files_class_combo_store">
++    <columns>
++      <!-- column-name gchararray1 -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkListStore" id="files_mls_combo_store">
++    <columns>
++      <!-- column-name mls -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkListStore" id="files_type_combo_store">
++    <columns>
++      <!-- column-name Type -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkListStore" id="in_network_liststore">
++    <columns>
++      <!-- column-name Port -->
++      <column type="gchararray"/>
++      <!-- column-name Protocol -->
++      <column type="gchararray"/>
++      <!-- column-name Modified -->
++      <column type="gchararray"/>
++      <!-- column-name SELinux -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkTreeModelFilter" id="in_network_treemodelfilter">
++    <property name="child_model">in_network_liststore</property>
++  </object>
++  <object class="GtkTreeModelSort" id="in_network_treemodelsort">
++    <property name="model">in_network_treemodelfilter</property>
++  </object>
++  <object class="GtkWindow" id="loading_gui">
++    <property name="width_request">300</property>
++    <property name="height_request">25</property>
++    <property name="visible">True</property>
++    <property name="can_focus">False</property>
++    <property name="title" translatable="yes">Analyzing Policy...</property>
++    <property name="resizable">False</property>
++    <property name="window_position">mouse</property>
++    <signal name="delete-event" handler="gtk_widget_hide" swapped="no"/>
++    <child>
++      <object class="GtkProgressBar" id="progress_bar">
++        <property name="visible">True</property>
++        <property name="can_focus">False</property>
++        <property name="pulse_step">0.050000000223517416</property>
++        <property name="show_text">True</property>
++      </object>
++    </child>
++  </object>
++  <object class="GtkListStore" id="modify_liststore_files">
++    <columns>
++      <!-- column-name Path -->
++      <column type="gchararray"/>
++      <!-- column-name File -->
++      <column type="gchararray"/>
++      <!-- column-name Class -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkListStore" id="more_types_file_liststore">
++    <columns>
++      <!-- column-name types -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkListStore" id="network_mls_combo_store">
++    <columns>
++      <!-- column-name mls -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkListStore" id="network_protocol_combo_store">
++    <columns>
++      <!-- column-name protocol -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkListStore" id="network_type_combo_store">
++    <columns>
++      <!-- column-name Type -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkListStore" id="out_network_liststore">
++    <columns>
++      <!-- column-name Port -->
++      <column type="gchararray"/>
++      <!-- column-name Protocol -->
++      <column type="gchararray"/>
++      <!-- column-name Modified -->
++      <column type="gchararray"/>
++      <!-- column-name SELinux -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkTreeModelFilter" id="out_network_treemodelfilter">
++    <property name="child_model">out_network_liststore</property>
++  </object>
++  <object class="GtkTreeModelSort" id="out_network_treemodelsort">
++    <property name="model">out_network_treemodelfilter</property>
++  </object>
++  <object class="GtkWindow" id="popup_window_files">
++    <property name="can_focus">False</property>
++    <property name="title" translatable="yes">Add a File</property>
++    <property name="resizable">False</property>
++    <property name="modal">True</property>
 +    <property name="window_position">center-always</property>
-+    <property name="default_width">650</property>
-+    <property name="default_height">420</property>
-+    <signal name="destroy" handler="gtk_main_quit" swapped="no"/>
-+    <signal name="configure-event" handler="on_SELinux_window_configure_event" swapped="no"/>
-+    <signal name="focus-in-event" handler="on_SELinux_window_configure_event" swapped="no"/>
++    <signal name="delete-event" handler="gtk_widget_hide" swapped="no"/>
 +    <child>
-+      <object class="GtkVBox" id="vbox1">
++      <object class="GtkVBox" id="vbox20">
 +        <property name="visible">True</property>
 +        <property name="can_focus">False</property>
 +        <child>
-+          <object class="GtkHBox" id="hbox1">
++          <object class="GtkLabel" id="Files_label">
++            <property name="visible">True</property>
++            <property name="can_focus">False</property>
++            <property name="xalign">0</property>
++            <property name="xpad">10</property>
++            <property name="label" translatable="yes">&lt;operation&gt; File Labeling for &lt;selected domain&gt;. File labels will be created when update is applied.</property>
++            <property name="justify">fill</property>
++            <property name="wrap">True</property>
++          </object>
++          <packing>
++            <property name="expand">True</property>
++            <property name="fill">True</property>
++            <property name="position">0</property>
++          </packing>
++        </child>
++        <child>
++          <object class="GtkTable" id="table2">
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
++            <property name="n_rows">7</property>
++            <property name="n_columns">2</property>
 +            <child>
-+              <object class="GtkVBox" id="vbox4">
++              <placeholder/>
++            </child>
++            <child>
++              <placeholder/>
++            </child>
++            <child>
++              <placeholder/>
++            </child>
++            <child>
++              <object class="GtkHBox" id="hbox23">
 +                <property name="visible">True</property>
 +                <property name="can_focus">False</property>
 +                <child>
-+                  <object class="GtkHBox" id="hbox7">
++                  <object class="GtkButton" id="save_changes_files">
++                    <property name="label" translatable="yes">Save to update</property>
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="receives_default">True</property>
++                    <signal name="clicked" handler="on_save_changes_files_clicked" swapped="no"/>
++                  </object>
++                  <packing>
++                    <property name="expand">False</property>
++                    <property name="fill">True</property>
++                    <property name="pack_type">end</property>
++                    <property name="position">0</property>
++                  </packing>
++                </child>
++                <child>
++                  <object class="GtkButton" id="cancel_files">
++                    <property name="label" translatable="yes">Cancel</property>
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="receives_default">True</property>
++                    <signal name="clicked" handler="on_cancel_files_clicked" swapped="no"/>
++                  </object>
++                  <packing>
++                    <property name="expand">False</property>
++                    <property name="fill">True</property>
++                    <property name="pack_type">end</property>
++                    <property name="position">1</property>
++                  </packing>
++                </child>
++              </object>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">6</property>
++                <property name="bottom_attach">7</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkLabel" id="mls_label_files">
++                <property name="width_request">40</property>
++                <property name="can_focus">False</property>
++                <property name="xalign">0</property>
++                <property name="xpad">10</property>
++                <property name="label" translatable="yes">MLS</property>
++              </object>
++              <packing>
++                <property name="top_attach">5</property>
++                <property name="bottom_attach">6</property>
++                <property name="x_options">GTK_FILL</property>
++                <property name="y_options"/>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkComboBox" id="files_mls_combobox">
++                <property name="width_request">360</property>
++                <property name="can_focus">False</property>
++                <property name="model">files_mls_combo_store</property>
++                <child>
++                  <object class="GtkCellRendererText" id="cellrenderertext27"/>
++                  <attributes>
++                    <attribute name="text">0</attribute>
++                  </attributes>
++                </child>
++              </object>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">5</property>
++                <property name="bottom_attach">6</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkLabel" id="Advanced_text_files">
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
++                <property name="xalign">0</property>
++                <property name="xpad">10</property>
++                <property name="label" translatable="yes">Advanced &gt;&gt;</property>
++                <property name="selectable">True</property>
++                <attributes>
++                  <attribute name="foreground" value="#00004e4e9999"/>
++                </attributes>
++                <signal name="button-press-event" handler="on_Advanced_text_files_button_press_event" swapped="no"/>
++              </object>
++              <packing>
++                <property name="top_attach">4</property>
++                <property name="bottom_attach">5</property>
++                <property name="x_options">GTK_FILL</property>
++                <property name="y_options"/>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkLabel" id="label1">
++                <property name="width_request">40</property>
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
++                <property name="xalign">0</property>
++                <property name="xpad">10</property>
++                <property name="label" translatable="yes">Class</property>
++              </object>
++              <packing>
++                <property name="top_attach">3</property>
++                <property name="bottom_attach">4</property>
++                <property name="x_options">GTK_FILL</property>
++                <property name="y_options"/>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkLabel" id="label2">
++                <property name="width_request">40</property>
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
++                <property name="xalign">0</property>
++                <property name="xpad">10</property>
++                <property name="label" translatable="yes">Type</property>
++              </object>
++              <packing>
++                <property name="top_attach">2</property>
++                <property name="bottom_attach">3</property>
++                <property name="x_options">GTK_FILL</property>
++                <property name="y_options"/>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkComboBox" id="files_class_combobox">
++                <property name="width_request">360</property>
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
++                <property name="model">files_class_combo_store</property>
++                <child>
++                  <object class="GtkCellRendererText" id="cellrenderertext23"/>
++                  <attributes>
++                    <attribute name="text">0</attribute>
++                  </attributes>
++                </child>
++              </object>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">3</property>
++                <property name="bottom_attach">4</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkVBox" id="vbox22">
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
++                <child>
++                  <object class="GtkHBox" id="hbox11">
 +                    <property name="visible">True</property>
 +                    <property name="can_focus">False</property>
 +                    <child>
-+                      <object class="GtkAspectFrame" id="aspectframe1">
-+                        <property name="visible">True</property>
-+                        <property name="can_focus">False</property>
-+                        <property name="label_xalign">0</property>
-+                        <child>
-+                          <object class="GtkHBox" id="hbox12">
-+                            <property name="visible">True</property>
-+                            <property name="can_focus">False</property>
-+                            <child>
-+                              <object class="GtkButton" id="applications_selection_button">
-+                                <property name="label" translatable="yes">Applications</property>
-+                                <property name="width_request">240</property>
-+                                <property name="visible">True</property>
-+                                <property name="can_focus">False</property>
-+                                <property name="receives_default">True</property>
-+                                <property name="relief">none</property>
-+                                <property name="focus_on_click">False</property>
-+                                <property name="xalign">0</property>
-+                                <property name="image_position">bottom</property>
-+                                <signal name="clicked" handler="on_combo_button_clicked" swapped="no"/>
-+                              </object>
-+                              <packing>
-+                                <property name="expand">True</property>
-+                                <property name="fill">True</property>
-+                                <property name="position">0</property>
-+                              </packing>
-+                            </child>
-+                            <child>
-+                              <object class="GtkButton" id="button1">
-+                                <property name="label" translatable="yes">↓</property>
-+                                <property name="visible">True</property>
-+                                <property name="can_focus">False</property>
-+                                <property name="receives_default">True</property>
-+                                <property name="relief">none</property>
-+                                <signal name="clicked" handler="on_combo_button_clicked" swapped="no"/>
-+                              </object>
-+                              <packing>
-+                                <property name="expand">True</property>
-+                                <property name="fill">True</property>
-+                                <property name="position">1</property>
-+                              </packing>
-+                            </child>
-+                          </object>
-+                        </child>
-+                      </object>
-+                      <packing>
-+                        <property name="expand">False</property>
-+                        <property name="fill">True</property>
-+                        <property name="position">0</property>
-+                      </packing>
-+                    </child>
-+                    <child>
-+                      <object class="GtkRadioButton" id="Booleans_button">
-+                        <property name="label" translatable="yes">Booleans</property>
-+                        <property name="visible">True</property>
-+                        <property name="can_focus">True</property>
-+                        <property name="receives_default">False</property>
-+                        <property name="tooltip_text" translatable="yes">Display boolean information that can be used to modify the policy for the 'selected domain'.</property>
-+                        <property name="xalign">0.5</property>
-+                        <property name="active">True</property>
-+                        <property name="draw_indicator">False</property>
-+                        <property name="group">Files_button</property>
-+                        <signal name="toggled" handler="on_Booleans_button_toggled" swapped="no"/>
-+                      </object>
-+                      <packing>
-+                        <property name="expand">False</property>
-+                        <property name="fill">True</property>
-+                        <property name="position">1</property>
-+                      </packing>
-+                    </child>
-+                    <child>
-+                      <object class="GtkRadioButton" id="Files_button">
-+                        <property name="label" translatable="yes">Files</property>
-+                        <property name="visible">True</property>
-+                        <property name="can_focus">True</property>
-+                        <property name="receives_default">False</property>
-+                        <property name="tooltip_text" translatable="yes">Display file type information that can be used by the 'selected domain'.</property>
-+                        <property name="xalign">0.5</property>
-+                        <property name="draw_indicator">False</property>
-+                        <property name="group">Booleans_button</property>
-+                        <signal name="toggled" handler="on_Files_button_toggled" swapped="no"/>
-+                      </object>
-+                      <packing>
-+                        <property name="expand">False</property>
-+                        <property name="fill">True</property>
-+                        <property name="position">2</property>
-+                      </packing>
-+                    </child>
-+                    <child>
-+                      <object class="GtkRadioButton" id="Network_button">
-+                        <property name="label" translatable="yes">Network</property>
++                      <object class="GtkCheckButton" id="make_path_recursive">
++                        <property name="label" translatable="yes">Make Path Recursive</property>
 +                        <property name="visible">True</property>
 +                        <property name="can_focus">True</property>
 +                        <property name="receives_default">False</property>
-+                        <property name="tooltip_text" translatable="yes">Display network ports to which the 'selected domain' can connect or listen to.</property>
 +                        <property name="xalign">0.5</property>
-+                        <property name="draw_indicator">False</property>
-+                        <property name="group">Booleans_button</property>
-+                        <signal name="toggled" handler="on_Network_button_toggled" swapped="no"/>
++                        <property name="draw_indicator">True</property>
++                        <signal name="toggled" handler="on_make_path_recursive_toggled" swapped="no"/>
 +                      </object>
 +                      <packing>
-+                        <property name="expand">False</property>
++                        <property name="expand">True</property>
 +                        <property name="fill">True</property>
-+                        <property name="position">3</property>
++                        <property name="position">0</property>
 +                      </packing>
 +                    </child>
 +                    <child>
-+                      <object class="GtkRadioButton" id="Transitions_button">
-+                        <property name="label" translatable="yes">Transitions</property>
++                      <object class="GtkButton" id="Browse_button_files">
++                        <property name="label" translatable="yes">Browse</property>
 +                        <property name="visible">True</property>
 +                        <property name="can_focus">True</property>
-+                        <property name="receives_default">False</property>
-+                        <property name="tooltip_text" translatable="yes">Display applications that can transition into or out of the 'selected domain'.</property>
-+                        <property name="xalign">0.5</property>
-+                        <property name="draw_indicator">False</property>
-+                        <property name="group">Booleans_button</property>
-+                        <signal name="toggled" handler="on_Transitions_button_toggled" swapped="no"/>
++                        <property name="receives_default">True</property>
++                        <signal name="clicked" handler="on_Browse_button_files_clicked" swapped="no"/>
 +                      </object>
 +                      <packing>
-+                        <property name="expand">False</property>
++                        <property name="expand">True</property>
 +                        <property name="fill">True</property>
-+                        <property name="position">4</property>
++                        <property name="position">1</property>
 +                      </packing>
 +                    </child>
++                  </object>
++                  <packing>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                    <property name="position">0</property>
++                  </packing>
++                </child>
++                <child>
++                  <object class="GtkHBox" id="hbox25">
++                    <property name="visible">True</property>
++                    <property name="can_focus">False</property>
 +                    <child>
-+                      <object class="GtkRadioButton" id="System_button">
-+                        <property name="label" translatable="yes">System</property>
-+                        <property name="can_focus">True</property>
-+                        <property name="receives_default">False</property>
-+                        <property name="xalign">0.5</property>
-+                        <property name="active">True</property>
-+                        <property name="draw_indicator">False</property>
-+                      </object>
-+                      <packing>
-+                        <property name="expand">False</property>
-+                        <property name="fill">True</property>
-+                        <property name="position">5</property>
-+                      </packing>
++                      <placeholder/>
 +                    </child>
 +                  </object>
 +                  <packing>
-+                    <property name="expand">False</property>
-+                    <property name="fill">False</property>
-+                    <property name="position">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                    <property name="position">1</property>
 +                  </packing>
 +                </child>
++              </object>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">1</property>
++                <property name="bottom_attach">2</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkLabel" id="label3">
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
++                <property name="xalign">0</property>
++                <property name="xpad">10</property>
++                <property name="label" translatable="yes">Path  </property>
++              </object>
++              <packing>
++                <property name="x_options">GTK_FILL</property>
++                <property name="y_options"/>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkEntry" id="files_path_entry">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="invisible_char">●</property>
++                <property name="primary_icon_activatable">False</property>
++                <property name="secondary_icon_activatable">False</property>
++                <signal name="button-press-event" handler="on_files_path_entry_button_press_event" swapped="no"/>
++                <signal name="changed" handler="on_files_path_entry_changed" swapped="no"/>
++              </object>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkVBox" id="vbox25">
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
 +                <child>
-+                  <object class="GtkHBox" id="middle_box_applications">
++                  <object class="GtkComboBox" id="files_type_combobox">
++                    <property name="width_request">360</property>
 +                    <property name="visible">True</property>
 +                    <property name="can_focus">False</property>
++                    <property name="model">files_type_combo_store</property>
++                    <signal name="changed" handler="on_files_type_combobox_changed" swapped="no"/>
 +                    <child>
-+                      <object class="GtkNotebook" id="outer_notebook">
-+                        <property name="height_request">465</property>
-+                        <property name="visible">True</property>
-+                        <property name="can_focus">True</property>
-+                        <property name="show_tabs">False</property>
-+                        <child>
-+                          <object class="GtkVBox" id="vbox3">
-+                            <property name="visible">True</property>
-+                            <property name="can_focus">False</property>
-+                            <child>
-+                              <object class="GtkHBox" id="hbox2">
-+                                <property name="visible">True</property>
-+                                <property name="can_focus">False</property>
-+                                <child>
-+                                  <object class="GtkLabel" id="text1">
-+                                    <property name="visible">True</property>
++                      <object class="GtkCellRendererText" id="cellrenderertext26"/>
++                      <attributes>
++                        <attribute name="text">0</attribute>
++                      </attributes>
++                    </child>
++                  </object>
++                  <packing>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                    <property name="position">0</property>
++                  </packing>
++                </child>
++              </object>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">2</property>
++                <property name="bottom_attach">3</property>
++              </packing>
++            </child>
++          </object>
++          <packing>
++            <property name="expand">True</property>
++            <property name="fill">True</property>
++            <property name="position">1</property>
++          </packing>
++        </child>
++      </object>
++    </child>
++  </object>
++  <object class="GtkWindow" id="popup_window_network">
++    <property name="can_focus">False</property>
++    <property name="title" translatable="yes">Network Port Definitions</property>
++    <property name="resizable">False</property>
++    <property name="modal">True</property>
++    <property name="window_position">center-always</property>
++    <signal name="delete-event" handler="gtk_widget_hide" swapped="no"/>
++    <child>
++      <object class="GtkVBox" id="vbox23">
++        <property name="visible">True</property>
++        <property name="can_focus">False</property>
++        <child>
++          <object class="GtkLabel" id="Network_label">
++            <property name="visible">True</property>
++            <property name="can_focus">False</property>
++            <property name="xalign">0</property>
++            <property name="xpad">10</property>
++            <property name="label" translatable="yes">&lt;operation&gt; Network Port for &lt;selected domain&gt;.  Ports will be created when update is applied.</property>
++            <property name="justify">fill</property>
++            <property name="wrap">True</property>
++          </object>
++          <packing>
++            <property name="expand">True</property>
++            <property name="fill">True</property>
++            <property name="position">0</property>
++          </packing>
++        </child>
++        <child>
++          <object class="GtkTable" id="table4">
++            <property name="visible">True</property>
++            <property name="can_focus">False</property>
++            <property name="n_rows">6</property>
++            <property name="n_columns">2</property>
++            <child>
++              <placeholder/>
++            </child>
++            <child>
++              <placeholder/>
++            </child>
++            <child>
++              <object class="GtkLabel" id="label14">
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
++                <property name="xalign">0</property>
++                <property name="xpad">10</property>
++                <property name="label" translatable="yes">Port Number</property>
++              </object>
++              <packing>
++                <property name="y_options"/>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkEntry" id="network_ports_entry">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="invisible_char">●</property>
++                <property name="primary_icon_activatable">False</property>
++                <property name="secondary_icon_activatable">False</property>
++              </object>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkLabel" id="label6">
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
++                <property name="xalign">0</property>
++                <property name="xpad">10</property>
++                <property name="label" translatable="yes">Protocol</property>
++              </object>
++              <packing>
++                <property name="top_attach">1</property>
++                <property name="bottom_attach">2</property>
++                <property name="y_options"/>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkLabel" id="label7">
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
++                <property name="xalign">0</property>
++                <property name="xpad">10</property>
++                <property name="label" translatable="yes">Port Type</property>
++              </object>
++              <packing>
++                <property name="top_attach">2</property>
++                <property name="bottom_attach">3</property>
++                <property name="y_options"/>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkLabel" id="Advanced_text_network">
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
++                <property name="xalign">0</property>
++                <property name="xpad">10</property>
++                <property name="label" translatable="yes">Advanced &gt;&gt;</property>
++                <property name="selectable">True</property>
++                <attributes>
++                  <attribute name="foreground" value="#00004e4e9999"/>
++                </attributes>
++                <signal name="button-press-event" handler="on_Advanced_text_files_button_press_event" swapped="no"/>
++              </object>
++              <packing>
++                <property name="top_attach">3</property>
++                <property name="bottom_attach">4</property>
++                <property name="y_options"/>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkLabel" id="mls_label_network">
++                <property name="can_focus">False</property>
++                <property name="xalign">0</property>
++                <property name="xpad">10</property>
++                <property name="label" translatable="yes">MLS</property>
++              </object>
++              <packing>
++                <property name="top_attach">4</property>
++                <property name="bottom_attach">5</property>
++                <property name="y_options"/>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkComboBox" id="network_mls_combobox">
++                <property name="width_request">360</property>
++                <property name="can_focus">False</property>
++                <property name="model">network_mls_combo_store</property>
++                <child>
++                  <object class="GtkCellRendererText" id="cellrenderertext34"/>
++                  <attributes>
++                    <attribute name="text">0</attribute>
++                  </attributes>
++                </child>
++              </object>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">4</property>
++                <property name="bottom_attach">5</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkComboBox" id="network_type_combobox">
++                <property name="width_request">360</property>
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
++                <property name="model">network_type_combo_store</property>
++                <child>
++                  <object class="GtkCellRendererText" id="cellrenderertext33"/>
++                  <attributes>
++                    <attribute name="text">0</attribute>
++                  </attributes>
++                </child>
++              </object>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">2</property>
++                <property name="bottom_attach">3</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkHBox" id="hbox14">
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
++                <child>
++                  <object class="GtkButton" id="save_changes_network">
++                    <property name="label" translatable="yes">Save to update</property>
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="receives_default">True</property>
++                    <signal name="clicked" handler="on_save_changes_network_clicked" swapped="no"/>
++                  </object>
++                  <packing>
++                    <property name="expand">False</property>
++                    <property name="fill">True</property>
++                    <property name="pack_type">end</property>
++                    <property name="position">0</property>
++                  </packing>
++                </child>
++                <child>
++                  <object class="GtkButton" id="cancel_network">
++                    <property name="label" translatable="yes">Cancel</property>
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="receives_default">True</property>
++                    <signal name="clicked" handler="on_cancel_network_clicked" swapped="no"/>
++                  </object>
++                  <packing>
++                    <property name="expand">False</property>
++                    <property name="fill">True</property>
++                    <property name="pack_type">end</property>
++                    <property name="position">1</property>
++                  </packing>
++                </child>
++              </object>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">5</property>
++                <property name="bottom_attach">6</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkHBox" id="hbox28">
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
++                <child>
++                  <object class="GtkRadioButton" id="tcp_button">
++                    <property name="label" translatable="yes">tcp</property>
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="receives_default">False</property>
++                    <property name="xalign">0.5</property>
++                    <property name="active">True</property>
++                    <property name="draw_indicator">True</property>
++                    <property name="group">udp_button</property>
++                  </object>
++                  <packing>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                    <property name="position">0</property>
++                  </packing>
++                </child>
++                <child>
++                  <object class="GtkRadioButton" id="udp_button">
++                    <property name="label" translatable="yes">udp</property>
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="receives_default">False</property>
++                    <property name="xalign">0.5</property>
++                    <property name="draw_indicator">True</property>
++                    <property name="group">tcp_button</property>
++                  </object>
++                  <packing>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                    <property name="position">1</property>
++                  </packing>
++                </child>
++              </object>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">1</property>
++                <property name="bottom_attach">2</property>
++              </packing>
++            </child>
++          </object>
++          <packing>
++            <property name="expand">True</property>
++            <property name="fill">True</property>
++            <property name="position">1</property>
++          </packing>
++        </child>
++      </object>
++    </child>
++  </object>
++  <object class="GtkListStore" id="system_policy_type_liststore">
++    <columns>
++      <!-- column-name gchararray1 -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkTreeStore" id="transitions_from_x_treestore">
++    <columns>
++      <!-- column-name Enabled -->
++      <column type="gchararray"/>
++      <!-- column-name boolnames -->
++      <column type="gchararray"/>
++      <!-- column-name Executable -->
++      <column type="gchararray"/>
++      <!-- column-name Transtype -->
++      <column type="gchararray"/>
++      <!-- column-name Text -->
++      <column type="gchararray"/>
++      <!-- column-name Activate -->
++      <column type="gboolean"/>
++    </columns>
++  </object>
++  <object class="GtkTreeModelFilter" id="transitions_from_x_treemodelfilter">
++    <property name="child_model">transitions_from_x_treestore</property>
++  </object>
++  <object class="GtkTreeModelSort" id="transitions_from_x_treemodelsort">
++    <property name="model">transitions_from_x_treemodelfilter</property>
++  </object>
++  <object class="GtkListStore" id="transitions_into_x_liststore">
++    <columns>
++      <!-- column-name Activate -->
++      <column type="gchararray"/>
++      <!-- column-name Source -->
++      <column type="gchararray"/>
++      <!-- column-name Executable -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkTreeModelFilter" id="transitions_into_x_treemodelfilter">
++    <property name="child_model">transitions_into_x_liststore</property>
++  </object>
++  <object class="GtkTreeModelSort" id="transitions_into_x_treemodelsort">
++    <property name="model">transitions_into_x_treemodelfilter</property>
++  </object>
++  <object class="GtkTreeStore" id="writable_files_treestore">
++    <columns>
++      <!-- column-name File -->
++      <column type="gchararray"/>
++      <!-- column-name SELinux -->
++      <column type="gchararray"/>
++      <!-- column-name File1 -->
++      <column type="gchararray"/>
++      <!-- column-name Label -->
++      <column type="gboolean"/>
++      <!-- column-name Mislabled -->
++      <column type="gboolean"/>
++      <!-- column-name Cur -->
++      <column type="gchararray"/>
++      <!-- column-name Con -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkTreeModelFilter" id="writable_files_treemodelfilter">
++    <property name="child_model">writable_files_treestore</property>
++  </object>
++  <object class="GtkTreeModelSort" id="writable_files_treemodelsort">
++    <property name="model">writable_files_treemodelfilter</property>
++  </object>
++  <object class="GtkWindow" id="SELinux_window">
++    <property name="can_focus">False</property>
++    <property name="title" translatable="yes">SELinux Policy Manager</property>
++    <property name="window_position">center-always</property>
++    <property name="default_width">650</property>
++    <property name="default_height">420</property>
++    <signal name="configure-event" handler="on_SELinux_window_configure_event" swapped="no"/>
++    <signal name="delete-event" handler="on_confirmation_close" swapped="no"/>
++    <signal name="focus-in-event" handler="on_SELinux_window_configure_event" swapped="no"/>
++    <child>
++      <object class="GtkVBox" id="vbox1">
++        <property name="visible">True</property>
++        <property name="can_focus">False</property>
++        <child>
++          <object class="GtkHBox" id="hbox1">
++            <property name="visible">True</property>
++            <property name="can_focus">False</property>
++            <child>
++              <object class="GtkVBox" id="vbox4">
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
++                <child>
++                  <object class="GtkHBox" id="hbox7">
++                    <property name="visible">True</property>
++                    <property name="can_focus">False</property>
++                    <child>
++                      <object class="GtkAspectFrame" id="aspectframe1">
++                        <property name="visible">True</property>
++                        <property name="can_focus">False</property>
++                        <property name="label_xalign">0</property>
++                        <child>
++                          <object class="GtkHBox" id="hbox12">
++                            <property name="visible">True</property>
++                            <property name="can_focus">False</property>
++                            <child>
++                              <object class="GtkButton" id="applications_selection_button">
++                                <property name="label" translatable="yes">Applications</property>
++                                <property name="width_request">240</property>
++                                <property name="visible">True</property>
++                                <property name="can_focus">False</property>
++                                <property name="receives_default">True</property>
++                                <property name="relief">none</property>
++                                <property name="focus_on_click">False</property>
++                                <property name="xalign">0</property>
++                                <property name="image_position">bottom</property>
++                                <signal name="clicked" handler="on_combo_button_clicked" swapped="no"/>
++                              </object>
++                              <packing>
++                                <property name="expand">True</property>
++                                <property name="fill">True</property>
++                                <property name="position">0</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkButton" id="button1">
++                                <property name="label" translatable="yes">↓</property>
++                                <property name="visible">True</property>
++                                <property name="can_focus">False</property>
++                                <property name="receives_default">True</property>
++                                <property name="relief">none</property>
++                                <signal name="clicked" handler="on_combo_button_clicked" swapped="no"/>
++                              </object>
++                              <packing>
++                                <property name="expand">True</property>
++                                <property name="fill">True</property>
++                                <property name="position">1</property>
++                              </packing>
++                            </child>
++                          </object>
++                        </child>
++                      </object>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="fill">True</property>
++                        <property name="position">0</property>
++                      </packing>
++                    </child>
++                    <child>
++                      <object class="GtkRadioButton" id="Booleans_button">
++                        <property name="label" translatable="yes">Booleans</property>
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="receives_default">False</property>
++                        <property name="tooltip_text" translatable="yes">Display boolean information that can be used to modify the policy for the 'selected domain'.</property>
++                        <property name="xalign">0.5</property>
++                        <property name="active">True</property>
++                        <property name="draw_indicator">False</property>
++                        <property name="group">Files_button</property>
++                        <signal name="toggled" handler="on_Booleans_button_toggled" swapped="no"/>
++                      </object>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="fill">True</property>
++                        <property name="position">1</property>
++                      </packing>
++                    </child>
++                    <child>
++                      <object class="GtkRadioButton" id="Files_button">
++                        <property name="label" translatable="yes">Files</property>
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="receives_default">False</property>
++                        <property name="tooltip_text" translatable="yes">Display file type information that can be used by the 'selected domain'.</property>
++                        <property name="xalign">0.5</property>
++                        <property name="draw_indicator">False</property>
++                        <property name="group">Booleans_button</property>
++                        <signal name="toggled" handler="on_Files_button_toggled" swapped="no"/>
++                      </object>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="fill">True</property>
++                        <property name="position">2</property>
++                      </packing>
++                    </child>
++                    <child>
++                      <object class="GtkRadioButton" id="Network_button">
++                        <property name="label" translatable="yes">Network</property>
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="receives_default">False</property>
++                        <property name="tooltip_text" translatable="yes">Display network ports to which the 'selected domain' can connect or listen to.</property>
++                        <property name="xalign">0.5</property>
++                        <property name="draw_indicator">False</property>
++                        <property name="group">Booleans_button</property>
++                        <signal name="toggled" handler="on_Network_button_toggled" swapped="no"/>
++                      </object>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="fill">True</property>
++                        <property name="position">3</property>
++                      </packing>
++                    </child>
++                    <child>
++                      <object class="GtkRadioButton" id="Transitions_button">
++                        <property name="label" translatable="yes">Transitions</property>
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="receives_default">False</property>
++                        <property name="tooltip_text" translatable="yes">Display applications that can transition into or out of the 'selected domain'.</property>
++                        <property name="xalign">0.5</property>
++                        <property name="draw_indicator">False</property>
++                        <property name="group">Booleans_button</property>
++                        <signal name="toggled" handler="on_Transitions_button_toggled" swapped="no"/>
++                      </object>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="fill">True</property>
++                        <property name="position">4</property>
++                      </packing>
++                    </child>
++                    <child>
++                      <object class="GtkRadioButton" id="System_button">
++                        <property name="label" translatable="yes">System</property>
++                        <property name="can_focus">True</property>
++                        <property name="receives_default">False</property>
++                        <property name="xalign">0.5</property>
++                        <property name="active">True</property>
++                        <property name="draw_indicator">False</property>
++                      </object>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="fill">True</property>
++                        <property name="position">5</property>
++                      </packing>
++                    </child>
++                  </object>
++                  <packing>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                    <property name="position">0</property>
++                  </packing>
++                </child>
++                <child>
++                  <object class="GtkHBox" id="middle_box_applications">
++                    <property name="visible">True</property>
++                    <property name="can_focus">False</property>
++                    <child>
++                      <object class="GtkNotebook" id="outer_notebook">
++                        <property name="height_request">465</property>
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="show_tabs">False</property>
++                        <child>
++                          <object class="GtkVBox" id="vbox3">
++                            <property name="visible">True</property>
++                            <property name="can_focus">False</property>
++                            <child>
++                              <object class="GtkHBox" id="hbox2">
++                                <property name="visible">True</property>
++                                <property name="can_focus">False</property>
++                                <child>
++                                  <object class="GtkLabel" id="text1">
++                                    <property name="visible">True</property>
 +                                    <property name="can_focus">False</property>
 +                                    <property name="label" translatable="yes">Filter</property>
 +                                  </object>
@@ -518735,7 +520313,6 @@ index 0000000..da6318f
 +                                    <property name="invisible_char">●</property>
 +                                    <property name="width_chars">25</property>
 +                                    <property name="shadow_type">none</property>
-+                                    <property name="invisible_char_set">True</property>
 +                                    <property name="primary_icon_stock">gtk-find</property>
 +                                    <property name="secondary_icon_activatable">False</property>
 +                                    <signal name="changed" handler="on_booleans_filter_changed" swapped="no"/>
@@ -518746,6 +520323,22 @@ index 0000000..da6318f
 +                                    <property name="position">1</property>
 +                                  </packing>
 +                                </child>
++                                <child>
++                                  <object class="GtkCheckButton" id="Show_modified_only_toggle_booleans">
++                                    <property name="label" translatable="yes">Show Modified Only</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="draw_indicator">True</property>
++                                    <signal name="toggled" handler="on_Show_modified_only_toggle_booleans_toggled" swapped="no"/>
++                                  </object>
++                                  <packing>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                    <property name="position">2</property>
++                                  </packing>
++                                </child>
 +                              </object>
 +                              <packing>
 +                                <property name="expand">False</property>
@@ -518754,22 +520347,6 @@ index 0000000..da6318f
 +                              </packing>
 +                            </child>
 +                            <child>
-+                              <object class="GtkCheckButton" id="Show_modified_only_toggle_booleans">
-+                                <property name="label" translatable="yes">Show Modified Only</property>
-+                                <property name="visible">True</property>
-+                                <property name="can_focus">True</property>
-+                                <property name="receives_default">False</property>
-+                                <property name="xalign">0.5</property>
-+                                <property name="draw_indicator">True</property>
-+                                <signal name="toggled" handler="on_Show_modified_only_toggle_booleans_toggled" swapped="no"/>
-+                              </object>
-+                              <packing>
-+                                <property name="expand">False</property>
-+                                <property name="fill">False</property>
-+                                <property name="position">1</property>
-+                              </packing>
-+                            </child>
-+                            <child>
 +                              <object class="GtkScrolledWindow" id="scrolledwindow4">
 +                                <property name="visible">True</property>
 +                                <property name="can_focus">True</property>
@@ -518782,9 +520359,12 @@ index 0000000..da6318f
 +allow alternative access control.</property>
 +                                    <property name="model">boolean_treemodelsort</property>
 +                                    <property name="search_column">0</property>
++                                    <child internal-child="selection">
++                                      <object class="GtkTreeSelection" id="treeview-selection1"/>
++                                    </child>
 +                                    <child>
 +                                      <object class="GtkTreeViewColumn" id="Active">
-+                                        <property name="sizing">fixed</property>
++                                        <property name="sizing">autosize</property>
 +                                        <property name="title" translatable="yes">Enabled</property>
 +                                        <property name="reorderable">True</property>
 +                                        <property name="sort_column_id">0</property>
@@ -518883,178 +520463,134 @@ index 0000000..da6318f
 +                                <property name="visible">True</property>
 +                                <property name="can_focus">False</property>
 +                                <property name="n_rows">2</property>
-+                                <property name="n_columns">3</property>
-+                                <child>
-+                                  <placeholder/>
-+                                </child>
 +                                <child>
-+                                  <object class="GtkHBox" id="hbox5">
++                                  <object class="GtkVBox" id="box2">
 +                                    <property name="visible">True</property>
 +                                    <property name="can_focus">False</property>
 +                                    <child>
-+                                      <object class="GtkLabel" id="text2">
++                                      <object class="GtkHBox" id="box3">
 +                                        <property name="visible">True</property>
 +                                        <property name="can_focus">False</property>
-+                                        <property name="label" translatable="yes">Filter</property>
++                                        <child>
++                                          <object class="GtkImage" id="warning_files">
++                                            <property name="can_focus">False</property>
++                                            <property name="stock">gtk-dialog-warning</property>
++                                          </object>
++                                          <packing>
++                                            <property name="expand">False</property>
++                                            <property name="fill">True</property>
++                                            <property name="position">0</property>
++                                          </packing>
++                                        </child>
++                                        <child>
++                                          <object class="GtkLabel" id="mislabeled_files_label">
++                                            <property name="can_focus">False</property>
++                                            <property name="label" translatable="yes">Mislabeled files exist</property>
++                                            <attributes>
++                                              <attribute name="foreground" value="#e43403050305"/>
++                                            </attributes>
++                                          </object>
++                                          <packing>
++                                            <property name="expand">False</property>
++                                            <property name="fill">True</property>
++                                            <property name="position">1</property>
++                                          </packing>
++                                        </child>
 +                                      </object>
 +                                      <packing>
 +                                        <property name="expand">False</property>
-+                                        <property name="fill">True</property>
++                                        <property name="fill">False</property>
 +                                        <property name="position">0</property>
 +                                      </packing>
 +                                    </child>
 +                                    <child>
-+                                      <object class="GtkEntry" id="files_filter">
-+                                        <property name="width_request">170</property>
-+                                        <property name="visible">True</property>
++                                      <object class="GtkCheckButton" id="Show_mislabeled_files">
++                                        <property name="label" translatable="yes">Show mislabeled files only</property>
 +                                        <property name="can_focus">True</property>
-+                                        <property name="invisible_char">●</property>
-+                                        <property name="width_chars">25</property>
-+                                        <property name="shadow_type">none</property>
-+                                        <property name="invisible_char_set">True</property>
-+                                        <property name="primary_icon_stock">gtk-find</property>
-+                                        <property name="secondary_icon_activatable">False</property>
-+                                        <signal name="changed" handler="on_files_filter_changed" swapped="no"/>
++                                        <property name="receives_default">False</property>
++                                        <property name="xalign">0</property>
++                                        <property name="draw_indicator">True</property>
++                                        <signal name="toggled" handler="on_Show_mislabeled_files_toggled" swapped="no"/>
 +                                      </object>
 +                                      <packing>
 +                                        <property name="expand">False</property>
-+                                        <property name="fill">True</property>
++                                        <property name="fill">False</property>
 +                                        <property name="position">1</property>
 +                                      </packing>
 +                                    </child>
 +                                  </object>
-+                                </child>
-+                                <child>
-+                                  <object class="GtkCheckButton" id="Show_modified_only_toggle_files">
-+                                    <property name="label" translatable="yes">Show Modified Only</property>
-+                                    <property name="visible">True</property>
-+                                    <property name="can_focus">True</property>
-+                                    <property name="receives_default">False</property>
-+                                    <property name="xalign">0.5</property>
-+                                    <property name="draw_indicator">True</property>
-+                                    <signal name="toggled" handler="on_Show_modified_only_toggle_files_toggled" swapped="no"/>
-+                                  </object>
-+                                  <packing>
-+                                    <property name="top_attach">1</property>
-+                                    <property name="bottom_attach">2</property>
-+                                    <property name="x_options">GTK_FILL</property>
-+                                    <property name="y_options"/>
-+                                  </packing>
-+                                </child>
-+                                <child>
-+                                  <object class="GtkCheckButton" id="Show_mislabeled_files">
-+                                    <property name="label" translatable="yes">Show mislabeled files only</property>
-+                                    <property name="can_focus">True</property>
-+                                    <property name="receives_default">False</property>
-+                                    <property name="xalign">0.5</property>
-+                                    <property name="draw_indicator">True</property>
-+                                    <signal name="toggled" handler="on_Show_mislabeled_files_toggled" swapped="no"/>
-+                                  </object>
 +                                  <packing>
-+                                    <property name="left_attach">1</property>
-+                                    <property name="right_attach">2</property>
 +                                    <property name="top_attach">1</property>
 +                                    <property name="bottom_attach">2</property>
-+                                    <property name="x_options">GTK_FILL</property>
-+                                    <property name="y_options"/>
 +                                  </packing>
 +                                </child>
 +                                <child>
-+                                  <object class="GtkHBox" id="hbox29">
++                                  <object class="GtkHBox" id="box10">
 +                                    <property name="visible">True</property>
 +                                    <property name="can_focus">False</property>
 +                                    <child>
-+                                      <object class="GtkButton" id="Delete_button_files">
-+                                        <property name="label" translatable="yes">Delete</property>
++                                      <object class="GtkHBox" id="hbox5">
 +                                        <property name="visible">True</property>
-+                                        <property name="sensitive">False</property>
-+                                        <property name="can_focus">True</property>
-+                                        <property name="receives_default">True</property>
-+                                        <signal name="clicked" handler="on_Delete_button_files_clicked" swapped="no"/>
++                                        <property name="can_focus">False</property>
++                                        <child>
++                                          <object class="GtkLabel" id="text2">
++                                            <property name="visible">True</property>
++                                            <property name="can_focus">False</property>
++                                            <property name="label" translatable="yes">Filter</property>
++                                          </object>
++                                          <packing>
++                                            <property name="expand">False</property>
++                                            <property name="fill">True</property>
++                                            <property name="position">0</property>
++                                          </packing>
++                                        </child>
++                                        <child>
++                                          <object class="GtkEntry" id="files_filter">
++                                            <property name="width_request">170</property>
++                                            <property name="visible">True</property>
++                                            <property name="can_focus">True</property>
++                                            <property name="invisible_char">●</property>
++                                            <property name="width_chars">25</property>
++                                            <property name="shadow_type">none</property>
++                                            <property name="primary_icon_stock">gtk-find</property>
++                                            <property name="secondary_icon_activatable">False</property>
++                                            <signal name="changed" handler="on_files_filter_changed" swapped="no"/>
++                                          </object>
++                                          <packing>
++                                            <property name="expand">False</property>
++                                            <property name="fill">True</property>
++                                            <property name="position">1</property>
++                                          </packing>
++                                        </child>
 +                                      </object>
 +                                      <packing>
 +                                        <property name="expand">False</property>
 +                                        <property name="fill">True</property>
-+                                        <property name="pack_type">end</property>
 +                                        <property name="position">0</property>
 +                                      </packing>
 +                                    </child>
 +                                    <child>
-+                                      <object class="GtkButton" id="Modify_button_files">
-+                                        <property name="label" translatable="yes">Modify</property>
-+                                        <property name="visible">True</property>
-+                                        <property name="can_focus">True</property>
-+                                        <property name="receives_default">True</property>
-+                                        <signal name="clicked" handler="on_Modify_button_files_clicked" swapped="no"/>
-+                                      </object>
-+                                      <packing>
-+                                        <property name="expand">False</property>
-+                                        <property name="fill">True</property>
-+                                        <property name="pack_type">end</property>
-+                                        <property name="position">1</property>
-+                                      </packing>
-+                                    </child>
-+                                    <child>
-+                                      <object class="GtkButton" id="Add_button_files">
-+                                        <property name="label" translatable="yes">Add</property>
++                                      <object class="GtkCheckButton" id="Show_modified_only_toggle_files">
++                                        <property name="label" translatable="yes">Show Modified Only</property>
 +                                        <property name="visible">True</property>
-+                                        <property name="sensitive">False</property>
 +                                        <property name="can_focus">True</property>
-+                                        <property name="receives_default">True</property>
-+                                        <signal name="clicked" handler="on_Add_button_files_clicked" swapped="no"/>
-+                                      </object>
-+                                      <packing>
-+                                        <property name="expand">False</property>
-+                                        <property name="fill">True</property>
-+                                        <property name="pack_type">end</property>
-+                                        <property name="position">2</property>
-+                                      </packing>
-+                                    </child>
-+                                  </object>
-+                                  <packing>
-+                                    <property name="left_attach">2</property>
-+                                    <property name="right_attach">3</property>
-+                                  </packing>
-+                                </child>
-+                                <child>
-+                                  <object class="GtkHBox" id="hbox30">
-+                                    <property name="visible">True</property>
-+                                    <property name="can_focus">False</property>
-+                                    <child>
-+                                      <object class="GtkImage" id="warning_files">
-+                                        <property name="can_focus">False</property>
-+                                        <property name="stock">gtk-dialog-warning</property>
-+                                      </object>
-+                                      <packing>
-+                                        <property name="expand">False</property>
-+                                        <property name="fill">True</property>
-+                                        <property name="position">0</property>
-+                                      </packing>
-+                                    </child>
-+                                    <child>
-+                                      <object class="GtkLabel" id="mislabeled_files_label">
-+                                        <property name="can_focus">False</property>
-+                                        <property name="label" translatable="yes">Mislabeled files exist</property>
-+                                        <attributes>
-+                                          <attribute name="foreground" value="#e43403050305"/>
-+                                        </attributes>
++                                        <property name="receives_default">False</property>
++                                        <property name="xalign">0</property>
++                                        <property name="draw_indicator">True</property>
++                                        <signal name="toggled" handler="on_Show_modified_only_toggle_files_toggled" swapped="no"/>
 +                                      </object>
 +                                      <packing>
-+                                        <property name="expand">False</property>
++                                        <property name="expand">True</property>
 +                                        <property name="fill">True</property>
 +                                        <property name="position">1</property>
 +                                      </packing>
 +                                    </child>
 +                                  </object>
-+                                  <packing>
-+                                    <property name="left_attach">1</property>
-+                                    <property name="right_attach">2</property>
-+                                  </packing>
 +                                </child>
 +                              </object>
 +                              <packing>
 +                                <property name="expand">False</property>
-+                                <property name="fill">True</property>
++                                <property name="fill">False</property>
 +                                <property name="position">0</property>
 +                              </packing>
 +                            </child>
@@ -519071,10 +520607,12 @@ index 0000000..da6318f
 +                                        <property name="visible">True</property>
 +                                        <property name="can_focus">True</property>
 +                                        <property name="no_show_all">True</property>
-+                                        <property name="tooltip_text" translatable="yes">File path used to enter the above selected process domain.</property>
 +                                        <property name="model">executable_files_treemodelsort</property>
 +                                        <property name="search_column">0</property>
 +                                        <signal name="button-press-event" handler="item_in_tree_selected" swapped="no"/>
++                                        <child internal-child="selection">
++                                          <object class="GtkTreeSelection" id="treeview-selection2"/>
++                                        </child>
 +                                        <child>
 +                                          <object class="GtkTreeViewColumn" id="col1">
 +                                            <property name="resizable">True</property>
@@ -519122,7 +520660,7 @@ index 0000000..da6318f
 +                                            <property name="resizable">True</property>
 +                                            <property name="sizing">fixed</property>
 +                                            <property name="min_width">175</property>
-+                                            <property name="title" translatable="yes">SELinux File Label</property>
++                                            <property name="title" translatable="yes">SELinux File Type</property>
 +                                            <property name="expand">True</property>
 +                                            <property name="reorderable">True</property>
 +                                            <property name="sort_column_id">1</property>
@@ -519175,10 +520713,12 @@ index 0000000..da6318f
 +                                        <property name="visible">True</property>
 +                                        <property name="can_focus">True</property>
 +                                        <property name="no_show_all">True</property>
-+                                        <property name="tooltip_text" translatable="yes">Files to which the above selected process domain can write.</property>
 +                                        <property name="model">writable_files_treemodelsort</property>
 +                                        <property name="search_column">0</property>
 +                                        <signal name="button-press-event" handler="item_in_tree_selected" swapped="no"/>
++                                        <child internal-child="selection">
++                                          <object class="GtkTreeSelection" id="treeview-selection3"/>
++                                        </child>
 +                                        <child>
 +                                          <object class="GtkTreeViewColumn" id="col3">
 +                                            <property name="resizable">True</property>
@@ -519224,7 +520764,7 @@ index 0000000..da6318f
 +                                            <property name="resizable">True</property>
 +                                            <property name="sizing">fixed</property>
 +                                            <property name="min_width">163</property>
-+                                            <property name="title" translatable="yes">SELinux File Label</property>
++                                            <property name="title" translatable="yes">SELinux File Type</property>
 +                                            <property name="expand">True</property>
 +                                            <property name="clickable">True</property>
 +                                            <property name="reorderable">True</property>
@@ -519283,10 +520823,12 @@ index 0000000..da6318f
 +                                        <property name="visible">True</property>
 +                                        <property name="can_focus">True</property>
 +                                        <property name="no_show_all">True</property>
-+                                        <property name="tooltip_text" translatable="yes">File Types defined for the selected domain</property>
 +                                        <property name="model">application_filetypes_treemodelsort</property>
 +                                        <property name="search_column">0</property>
 +                                        <signal name="button-press-event" handler="item_in_tree_selected" swapped="no"/>
++                                        <child internal-child="selection">
++                                          <object class="GtkTreeSelection" id="treeview-selection4"/>
++                                        </child>
 +                                        <child>
 +                                          <object class="GtkTreeViewColumn" id="col7">
 +                                            <property name="resizable">True</property>
@@ -519397,6 +520939,65 @@ index 0000000..da6318f
 +                                <property name="position">1</property>
 +                              </packing>
 +                            </child>
++                            <child>
++                              <object class="GtkHBox" id="box1">
++                                <property name="visible">True</property>
++                                <property name="can_focus">False</property>
++                                <property name="border_width">0</property>
++                                <child>
++                                  <object class="GtkButton" id="Delete_button_files">
++                                    <property name="label" translatable="yes">Delete</property>
++                                    <property name="visible">True</property>
++                                    <property name="sensitive">False</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">True</property>
++                                    <signal name="clicked" handler="on_Delete_button_files_clicked" swapped="no"/>
++                                  </object>
++                                  <packing>
++                                    <property name="expand">False</property>
++                                    <property name="fill">True</property>
++                                    <property name="pack_type">end</property>
++                                    <property name="position">0</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkButton" id="Modify_button_files">
++                                    <property name="label" translatable="yes">Modify</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">True</property>
++                                    <signal name="clicked" handler="on_Modify_button_files_clicked" swapped="no"/>
++                                  </object>
++                                  <packing>
++                                    <property name="expand">False</property>
++                                    <property name="fill">True</property>
++                                    <property name="pack_type">end</property>
++                                    <property name="position">1</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkButton" id="Add_button_files">
++                                    <property name="label" translatable="yes">Add</property>
++                                    <property name="visible">True</property>
++                                    <property name="sensitive">False</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">True</property>
++                                    <signal name="clicked" handler="on_Add_button_files_clicked" swapped="no"/>
++                                  </object>
++                                  <packing>
++                                    <property name="expand">False</property>
++                                    <property name="fill">True</property>
++                                    <property name="pack_type">end</property>
++                                    <property name="position">2</property>
++                                  </packing>
++                                </child>
++                              </object>
++                              <packing>
++                                <property name="expand">False</property>
++                                <property name="fill">False</property>
++                                <property name="position">2</property>
++                              </packing>
++                            </child>
 +                          </object>
 +                          <packing>
 +                            <property name="position">1</property>
@@ -519445,7 +521046,6 @@ index 0000000..da6318f
 +                                        <property name="invisible_char">●</property>
 +                                        <property name="width_chars">25</property>
 +                                        <property name="shadow_type">none</property>
-+                                        <property name="invisible_char_set">True</property>
 +                                        <property name="primary_icon_stock">gtk-find</property>
 +                                        <property name="secondary_icon_activatable">False</property>
 +                                        <signal name="changed" handler="on_network_filter_changed" swapped="no"/>
@@ -519456,6 +521056,22 @@ index 0000000..da6318f
 +                                        <property name="position">1</property>
 +                                      </packing>
 +                                    </child>
++                                    <child>
++                                      <object class="GtkCheckButton" id="Show_modified_only_toggle_network">
++                                        <property name="label" translatable="yes">Show Modified Only</property>
++                                        <property name="visible">True</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="receives_default">False</property>
++                                        <property name="xalign">0.5</property>
++                                        <property name="draw_indicator">True</property>
++                                        <signal name="toggled" handler="on_Show_modified_only_toggle_network_toggled" swapped="no"/>
++                                      </object>
++                                      <packing>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
++                                        <property name="position">2</property>
++                                      </packing>
++                                    </child>
 +                                  </object>
 +                                  <packing>
 +                                    <property name="expand">True</property>
@@ -519464,76 +521080,19 @@ index 0000000..da6318f
 +                                  </packing>
 +                                </child>
 +                                <child>
-+                                  <object class="GtkButton" id="Delete_button_network">
-+                                    <property name="label" translatable="yes">Delete</property>
-+                                    <property name="visible">True</property>
-+                                    <property name="sensitive">False</property>
-+                                    <property name="can_focus">True</property>
-+                                    <property name="receives_default">True</property>
-+                                    <property name="tooltip_text" translatable="yes">Delete an existing item</property>
-+                                    <signal name="clicked" handler="on_Delete_button_network_clicked" swapped="no"/>
-+                                  </object>
-+                                  <packing>
-+                                    <property name="expand">False</property>
-+                                    <property name="fill">True</property>
-+                                    <property name="pack_type">end</property>
-+                                    <property name="position">1</property>
-+                                  </packing>
++                                  <placeholder/>
 +                                </child>
 +                                <child>
-+                                  <object class="GtkButton" id="Modify_button_network">
-+                                    <property name="label" translatable="yes">Modify</property>
-+                                    <property name="visible">True</property>
-+                                    <property name="can_focus">True</property>
-+                                    <property name="receives_default">True</property>
-+                                    <property name="tooltip_text" translatable="yes">Modify an existing item</property>
-+                                    <signal name="clicked" handler="on_Modify_button_network_clicked" swapped="no"/>
-+                                  </object>
-+                                  <packing>
-+                                    <property name="expand">False</property>
-+                                    <property name="fill">True</property>
-+                                    <property name="pack_type">end</property>
-+                                    <property name="position">2</property>
-+                                  </packing>
++                                  <placeholder/>
 +                                </child>
 +                                <child>
-+                                  <object class="GtkButton" id="Add_button_network">
-+                                    <property name="label" translatable="yes">Add</property>
-+                                    <property name="visible">True</property>
-+                                    <property name="sensitive">False</property>
-+                                    <property name="can_focus">True</property>
-+                                    <property name="receives_default">True</property>
-+                                    <property name="tooltip_text" translatable="yes">Add a new item</property>
-+                                    <signal name="clicked" handler="on_Add_button_network_clicked" swapped="no"/>
-+                                  </object>
-+                                  <packing>
-+                                    <property name="expand">False</property>
-+                                    <property name="fill">True</property>
-+                                    <property name="pack_type">end</property>
-+                                    <property name="position">3</property>
-+                                  </packing>
++                                  <placeholder/>
 +                                </child>
 +                              </object>
 +                              <packing>
 +                                <property name="expand">False</property>
-+                                <property name="fill">True</property>
-+                                <property name="position">0</property>
-+                              </packing>
-+                            </child>
-+                            <child>
-+                              <object class="GtkCheckButton" id="Show_modified_only_toggle_network">
-+                                <property name="label" translatable="yes">Show Modified Only</property>
-+                                <property name="visible">True</property>
-+                                <property name="can_focus">True</property>
-+                                <property name="receives_default">False</property>
-+                                <property name="xalign">0.5</property>
-+                                <property name="draw_indicator">True</property>
-+                                <signal name="toggled" handler="on_Show_modified_only_toggle_network_toggled" swapped="no"/>
-+                              </object>
-+                              <packing>
-+                                <property name="expand">False</property>
 +                                <property name="fill">False</property>
-+                                <property name="position">1</property>
++                                <property name="position">0</property>
 +                              </packing>
 +                            </child>
 +                            <child>
@@ -519549,11 +521108,13 @@ index 0000000..da6318f
 +                                        <property name="visible">True</property>
 +                                        <property name="can_focus">True</property>
 +                                        <property name="no_show_all">True</property>
-+                                        <property name="tooltip_text" translatable="yes">Network Ports to which the selected domain is allowed to connect.</property>
 +                                        <property name="model">out_network_treemodelsort</property>
 +                                        <property name="search_column">0</property>
 +                                        <property name="fixed_height_mode">True</property>
 +                                        <signal name="button-press-event" handler="item_in_tree_selected" swapped="no"/>
++                                        <child internal-child="selection">
++                                          <object class="GtkTreeSelection" id="treeview-selection5"/>
++                                        </child>
 +                                        <child>
 +                                          <object class="GtkTreeViewColumn" id="col19">
 +                                            <property name="resizable">True</property>
@@ -519630,11 +521191,13 @@ index 0000000..da6318f
 +                                        <property name="visible">True</property>
 +                                        <property name="can_focus">True</property>
 +                                        <property name="no_show_all">True</property>
-+                                        <property name="tooltip_text" translatable="yes">Network Ports to which the selected domain is allowed to listen.</property>
 +                                        <property name="model">in_network_treemodelsort</property>
 +                                        <property name="search_column">0</property>
 +                                        <property name="fixed_height_mode">True</property>
 +                                        <signal name="button-press-event" handler="item_in_tree_selected" swapped="no"/>
++                                        <child internal-child="selection">
++                                          <object class="GtkTreeSelection" id="treeview-selection6"/>
++                                        </child>
 +                                        <child>
 +                                          <object class="GtkTreeViewColumn" id="col21">
 +                                            <property name="resizable">True</property>
@@ -519709,6 +521272,67 @@ index 0000000..da6318f
 +                              <packing>
 +                                <property name="expand">True</property>
 +                                <property name="fill">True</property>
++                                <property name="position">1</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkHBox" id="box4">
++                                <property name="visible">True</property>
++                                <property name="can_focus">False</property>
++                                <child>
++                                  <object class="GtkButton" id="Delete_button_network">
++                                    <property name="label" translatable="yes">Delete</property>
++                                    <property name="visible">True</property>
++                                    <property name="sensitive">False</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">True</property>
++                                    <property name="tooltip_text" translatable="yes">Delete an existing item</property>
++                                    <signal name="clicked" handler="on_Delete_button_network_clicked" swapped="no"/>
++                                  </object>
++                                  <packing>
++                                    <property name="expand">False</property>
++                                    <property name="fill">True</property>
++                                    <property name="pack_type">end</property>
++                                    <property name="position">0</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkButton" id="Modify_button_network">
++                                    <property name="label" translatable="yes">Modify</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">True</property>
++                                    <property name="tooltip_text" translatable="yes">Modify an existing item</property>
++                                    <signal name="clicked" handler="on_Modify_button_network_clicked" swapped="no"/>
++                                  </object>
++                                  <packing>
++                                    <property name="expand">False</property>
++                                    <property name="fill">True</property>
++                                    <property name="pack_type">end</property>
++                                    <property name="position">1</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkButton" id="Add_button_network">
++                                    <property name="label" translatable="yes">Add</property>
++                                    <property name="visible">True</property>
++                                    <property name="sensitive">False</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">True</property>
++                                    <property name="tooltip_text" translatable="yes">Add a new item</property>
++                                    <signal name="clicked" handler="on_Add_button_network_clicked" swapped="no"/>
++                                  </object>
++                                  <packing>
++                                    <property name="expand">False</property>
++                                    <property name="fill">True</property>
++                                    <property name="pack_type">end</property>
++                                    <property name="position">2</property>
++                                  </packing>
++                                </child>
++                              </object>
++                              <packing>
++                                <property name="expand">False</property>
++                                <property name="fill">False</property>
 +                                <property name="position">2</property>
 +                              </packing>
 +                            </child>
@@ -519756,7 +521380,6 @@ index 0000000..da6318f
 +                                    <property name="invisible_char">●</property>
 +                                    <property name="width_chars">25</property>
 +                                    <property name="shadow_type">none</property>
-+                                    <property name="invisible_char_set">True</property>
 +                                    <property name="primary_icon_stock">gtk-find</property>
 +                                    <property name="secondary_icon_activatable">False</property>
 +                                    <signal name="changed" handler="on_transitions_filter_changed" swapped="no"/>
@@ -519786,12 +521409,16 @@ index 0000000..da6318f
 +                                      <object class="GtkTreeView" id="transitions_from_x_treeview">
 +                                        <property name="visible">True</property>
 +                                        <property name="can_focus">True</property>
-+                                        <property name="tooltip_text" translatable="yes">Executables which will transition to a different domain, when the 'selected domain' executes them.</property>
 +                                        <property name="model">transitions_from_x_treemodelsort</property>
++                                        <child internal-child="selection">
++                                          <object class="GtkTreeSelection" id="treeview-selection7"/>
++                                        </child>
 +                                        <child>
 +                                          <object class="GtkTreeViewColumn" id="active_from">
 +                                            <property name="resizable">True</property>
-+                                            <property name="title" translatable="yes">Enabled</property>
++                                            <property name="sizing">autosize</property>
++                                            <property name="title" translatable="yes">Boolean 
++Enabled</property>
 +                                            <property name="clickable">True</property>
 +                                            <property name="reorderable">True</property>
 +                                            <property name="sort_column_id">0</property>
@@ -519806,7 +521433,7 @@ index 0000000..da6318f
 +                                        <child>
 +                                          <object class="GtkTreeViewColumn" id="executable_file_from">
 +                                            <property name="resizable">True</property>
-+                                            <property name="title" translatable="yes">Executable File Type</property>
++                                            <property name="title" translatable="yes">Executable File Path</property>
 +                                            <property name="expand">True</property>
 +                                            <property name="clickable">True</property>
 +                                            <property name="reorderable">True</property>
@@ -519832,7 +521459,7 @@ index 0000000..da6318f
 +                                        <child>
 +                                          <object class="GtkTreeViewColumn" id="treeviewcolumn2">
 +                                            <property name="resizable">True</property>
-+                                            <property name="title" translatable="yes">Transtype</property>
++                                            <property name="title" translatable="yes">SELinux Application Type</property>
 +                                            <property name="expand">True</property>
 +                                            <property name="clickable">True</property>
 +                                            <property name="sort_indicator">True</property>
@@ -519871,12 +521498,15 @@ index 0000000..da6318f
 +                                      <object class="GtkTreeView" id="transitions_into_x_treeview">
 +                                        <property name="visible">True</property>
 +                                        <property name="can_focus">True</property>
-+                                        <property name="tooltip_text" translatable="yes">Executables which will transition to the 'selected domain', when executing a selected domains entrypoint.</property>
 +                                        <property name="model">transitions_into_x_treemodelsort</property>
++                                        <child internal-child="selection">
++                                          <object class="GtkTreeSelection" id="treeview-selection8"/>
++                                        </child>
 +                                        <child>
 +                                          <object class="GtkTreeViewColumn" id="active_to">
 +                                            <property name="resizable">True</property>
-+                                            <property name="title" translatable="yes">Enabled</property>
++                                            <property name="title" translatable="yes">Boolean
++Enabled</property>
 +                                            <property name="clickable">True</property>
 +                                            <property name="reorderable">True</property>
 +                                            <child>
@@ -519945,9 +521575,12 @@ index 0000000..da6318f
 +                                        <property name="visible">True</property>
 +                                        <property name="can_focus">True</property>
 +                                        <property name="model">File_transitions_treemodel_sort</property>
++                                        <child internal-child="selection">
++                                          <object class="GtkTreeSelection" id="treeview-selection9"/>
++                                        </child>
 +                                        <child>
 +                                          <object class="GtkTreeViewColumn" id="treeviewcolumn7">
-+                                            <property name="title" translatable="yes">Directory Type</property>
++                                            <property name="title" translatable="yes">SELinux Directory Type</property>
 +                                            <property name="sort_column_id">0</property>
 +                                            <child>
 +                                              <object class="GtkCellRendererText" id="cellrenderertext43"/>
@@ -519959,7 +521592,8 @@ index 0000000..da6318f
 +                                        </child>
 +                                        <child>
 +                                          <object class="GtkTreeViewColumn" id="treeviewcolumn9">
-+                                            <property name="title" translatable="yes">Class</property>
++                                            <property name="title" translatable="yes">Destination Class</property>
++                                            <property name="sort_order">descending</property>
 +                                            <property name="sort_column_id">1</property>
 +                                            <child>
 +                                              <object class="GtkCellRendererText" id="cellrenderertext44"/>
@@ -519971,7 +521605,7 @@ index 0000000..da6318f
 +                                        </child>
 +                                        <child>
 +                                          <object class="GtkTreeViewColumn" id="treeviewcolumn23">
-+                                            <property name="title" translatable="yes">Destination Type</property>
++                                            <property name="title" translatable="yes">SELinux Destination Type</property>
 +                                            <property name="sort_column_id">2</property>
 +                                            <child>
 +                                              <object class="GtkCellRendererText" id="cellrenderertext45"/>
@@ -520042,356 +521676,265 @@ index 0000000..da6318f
 +                      </packing>
 +                    </child>
 +                    <child>
-+                      <object class="GtkHBox" id="Systems_box">
-+                        <property name="height_request">465</property>
++                      <object class="GtkVBox" id="Systems_box">
 +                        <property name="can_focus">False</property>
 +                        <child>
-+                          <object class="GtkVBox" id="vbox11">
++                          <object class="GtkFrame" id="System_mode_frame">
 +                            <property name="visible">True</property>
 +                            <property name="can_focus">False</property>
++                            <property name="label_xalign">0</property>
++                            <property name="shadow_type">out</property>
 +                            <child>
-+                              <object class="GtkVBox" id="vbox12">
++                              <object class="GtkTable" id="grid1">
 +                                <property name="visible">True</property>
 +                                <property name="can_focus">False</property>
 +                                <child>
 +                                  <object class="GtkLabel" id="label18">
 +                                    <property name="visible">True</property>
 +                                    <property name="can_focus">False</property>
-+                                    <property name="label" translatable="yes">Select the system mode when the system first boots up.</property>
++                                    <property name="xalign">0.05000000074505806</property>
++                                    <property name="label" translatable="yes">Select the system mode when the system first boots up</property>
 +                                  </object>
-+                                  <packing>
-+                                    <property name="expand">True</property>
-+                                    <property name="fill">True</property>
-+                                    <property name="position">0</property>
-+                                  </packing>
 +                                </child>
 +                                <child>
-+                                  <object class="GtkHBox" id="hbox3">
++                                  <object class="GtkHBox" id="box6">
 +                                    <property name="visible">True</property>
 +                                    <property name="can_focus">False</property>
 +                                    <child>
-+                                      <object class="GtkLabel" id="label17">
++                                      <object class="GtkRadioButton" id="Enforcing_button_default">
++                                        <property name="label" translatable="yes">Enforcing</property>
 +                                        <property name="visible">True</property>
-+                                        <property name="can_focus">False</property>
-+                                        <property name="label" translatable="yes">Systems Default Mode:</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="receives_default">False</property>
++                                        <property name="margin_left">50</property>
++                                        <property name="xalign">0</property>
++                                        <property name="yalign">0.50999999046325684</property>
++                                        <property name="active">True</property>
++                                        <property name="draw_indicator">True</property>
++                                        <signal name="group-changed" handler="gtk_main_quit" swapped="no"/>
++                                        <signal name="toggled" handler="on_Enforcing_button_default_toggled" swapped="no"/>
 +                                      </object>
 +                                      <packing>
-+                                        <property name="expand">True</property>
-+                                        <property name="fill">True</property>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
 +                                        <property name="position">0</property>
 +                                      </packing>
 +                                    </child>
 +                                    <child>
-+                                      <object class="GtkVBox" id="vbox17">
++                                      <object class="GtkRadioButton" id="Permissive_button_default">
++                                        <property name="label" translatable="yes">Permissive</property>
 +                                        <property name="visible">True</property>
-+                                        <property name="can_focus">False</property>
-+                                        <child>
-+                                          <object class="GtkRadioButton" id="Enforcing_button_default">
-+                                            <property name="label" translatable="yes">Enforcing</property>
-+                                            <property name="visible">True</property>
-+                                            <property name="can_focus">True</property>
-+                                            <property name="receives_default">False</property>
-+                                            <property name="xalign">0.5</property>
-+                                            <property name="active">True</property>
-+                                            <property name="draw_indicator">True</property>
-+                                            <signal name="toggled" handler="on_Enforcing_button_default_toggled" swapped="no"/>
-+                                            <signal name="group-changed" handler="gtk_main_quit" swapped="no"/>
-+                                          </object>
-+                                          <packing>
-+                                            <property name="expand">True</property>
-+                                            <property name="fill">True</property>
-+                                            <property name="position">0</property>
-+                                          </packing>
-+                                        </child>
-+                                        <child>
-+                                          <object class="GtkRadioButton" id="Permissive_button_default">
-+                                            <property name="label" translatable="yes">Permissive</property>
-+                                            <property name="visible">True</property>
-+                                            <property name="can_focus">True</property>
-+                                            <property name="receives_default">False</property>
-+                                            <property name="xalign">0.5</property>
-+                                            <property name="draw_indicator">True</property>
-+                                            <property name="group">Enforcing_button_default</property>
-+                                            <signal name="toggled" handler="on_Permissive_button_default_toggled" swapped="no"/>
-+                                          </object>
-+                                          <packing>
-+                                            <property name="expand">True</property>
-+                                            <property name="fill">True</property>
-+                                            <property name="position">1</property>
-+                                          </packing>
-+                                        </child>
-+                                        <child>
-+                                          <object class="GtkRadioButton" id="Disabled_button_default">
-+                                            <property name="label" translatable="yes">Disabled</property>
-+                                            <property name="visible">True</property>
-+                                            <property name="can_focus">True</property>
-+                                            <property name="receives_default">False</property>
-+                                            <property name="xalign">0.5</property>
-+                                            <property name="draw_indicator">True</property>
-+                                            <property name="group">Enforcing_button_default</property>
-+                                            <signal name="toggled" handler="on_Disabled_button_default_toggled" swapped="no"/>
-+                                          </object>
-+                                          <packing>
-+                                            <property name="expand">True</property>
-+                                            <property name="fill">True</property>
-+                                            <property name="position">2</property>
-+                                          </packing>
-+                                        </child>
++                                        <property name="can_focus">True</property>
++                                        <property name="receives_default">False</property>
++                                        <property name="xalign">0</property>
++                                        <property name="draw_indicator">True</property>
++                                        <property name="group">Enforcing_button_default</property>
++                                        <signal name="toggled" handler="on_Permissive_button_default_toggled" swapped="no"/>
 +                                      </object>
 +                                      <packing>
-+                                        <property name="expand">True</property>
-+                                        <property name="fill">True</property>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
 +                                        <property name="position">1</property>
 +                                      </packing>
 +                                    </child>
++                                    <child>
++                                      <object class="GtkRadioButton" id="Disabled_button_default">
++                                        <property name="label" translatable="yes">Disabled</property>
++                                        <property name="visible">True</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="receives_default">False</property>
++                                        <property name="xalign">0</property>
++                                        <property name="draw_indicator">True</property>
++                                        <property name="group">Enforcing_button_default</property>
++                                        <signal name="toggled" handler="on_Disabled_button_default_toggled" swapped="no"/>
++                                      </object>
++                                      <packing>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
++                                        <property name="position">2</property>
++                                      </packing>
++                                    </child>
 +                                  </object>
 +                                  <packing>
-+                                    <property name="expand">False</property>
-+                                    <property name="fill">True</property>
-+                                    <property name="position">1</property>
++                                    <property name="top_attach">1</property>
 +                                  </packing>
 +                                </child>
-+                              </object>
-+                              <packing>
-+                                <property name="expand">True</property>
-+                                <property name="fill">True</property>
-+                                <property name="position">0</property>
-+                              </packing>
-+                            </child>
-+                            <child>
-+                              <object class="GtkVBox" id="vbox13">
-+                                <property name="visible">True</property>
-+                                <property name="can_focus">False</property>
 +                                <child>
 +                                  <object class="GtkLabel" id="label16">
 +                                    <property name="visible">True</property>
 +                                    <property name="can_focus">False</property>
-+                                    <property name="label" translatable="yes">Select the system mode for the current session.</property>
++                                    <property name="xalign">0.05000000074505806</property>
++                                    <property name="label" translatable="yes">Select the system mode for the current session</property>
 +                                  </object>
 +                                  <packing>
-+                                    <property name="expand">True</property>
-+                                    <property name="fill">True</property>
-+                                    <property name="position">0</property>
++                                    <property name="top_attach">2</property>
 +                                  </packing>
 +                                </child>
 +                                <child>
-+                                  <object class="GtkHBox" id="hbox18">
++                                  <object class="GtkHBox" id="box7">
 +                                    <property name="visible">True</property>
 +                                    <property name="can_focus">False</property>
 +                                    <child>
-+                                      <object class="GtkLabel" id="label15">
++                                      <object class="GtkRadioButton" id="Enforcing_button">
++                                        <property name="label" translatable="yes">Enforcing</property>
 +                                        <property name="visible">True</property>
-+                                        <property name="can_focus">False</property>
-+                                        <property name="label" translatable="yes">Current Mode:</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="receives_default">False</property>
++                                        <property name="margin_left">100</property>
++                                        <property name="xalign">0</property>
++                                        <property name="active">True</property>
++                                        <property name="draw_indicator">True</property>
++                                        <signal name="toggled" handler="on_Enforcing_button_toggled" swapped="no"/>
 +                                      </object>
 +                                      <packing>
-+                                        <property name="expand">True</property>
++                                        <property name="expand">False</property>
 +                                        <property name="fill">True</property>
 +                                        <property name="position">0</property>
 +                                      </packing>
 +                                    </child>
 +                                    <child>
-+                                      <object class="GtkVBox" id="vbox15">
++                                      <object class="GtkRadioButton" id="Permissive_button">
++                                        <property name="label" translatable="yes">Permissive</property>
 +                                        <property name="visible">True</property>
-+                                        <property name="can_focus">False</property>
-+                                        <child>
-+                                          <object class="GtkRadioButton" id="Enforcing_button">
-+                                            <property name="label" translatable="yes">Enforcing</property>
-+                                            <property name="visible">True</property>
-+                                            <property name="can_focus">True</property>
-+                                            <property name="receives_default">False</property>
-+                                            <property name="xalign">0.5</property>
-+                                            <property name="active">True</property>
-+                                            <property name="draw_indicator">True</property>
-+                                            <property name="group">Permissive_button</property>
-+                                            <signal name="toggled" handler="on_Enforcing_button_toggled" swapped="no"/>
-+                                          </object>
-+                                          <packing>
-+                                            <property name="expand">True</property>
-+                                            <property name="fill">True</property>
-+                                            <property name="position">0</property>
-+                                          </packing>
-+                                        </child>
-+                                        <child>
-+                                          <object class="GtkRadioButton" id="Permissive_button">
-+                                            <property name="label" translatable="yes">Permissive</property>
-+                                            <property name="visible">True</property>
-+                                            <property name="can_focus">True</property>
-+                                            <property name="receives_default">False</property>
-+                                            <property name="xalign">0.5</property>
-+                                            <property name="draw_indicator">True</property>
-+                                            <property name="group">Enforcing_button</property>
-+                                          </object>
-+                                          <packing>
-+                                            <property name="expand">True</property>
-+                                            <property name="fill">True</property>
-+                                            <property name="position">1</property>
-+                                          </packing>
-+                                        </child>
++                                        <property name="can_focus">True</property>
++                                        <property name="receives_default">False</property>
++                                        <property name="xalign">0</property>
++                                        <property name="draw_indicator">True</property>
++                                        <property name="group">Enforcing_button</property>
 +                                      </object>
 +                                      <packing>
-+                                        <property name="expand">True</property>
++                                        <property name="expand">False</property>
 +                                        <property name="fill">True</property>
 +                                        <property name="position">1</property>
 +                                      </packing>
 +                                    </child>
 +                                  </object>
 +                                  <packing>
-+                                    <property name="expand">False</property>
-+                                    <property name="fill">True</property>
-+                                    <property name="position">1</property>
++                                    <property name="top_attach">3</property>
 +                                  </packing>
 +                                </child>
-+                              </object>
-+                              <packing>
-+                                <property name="expand">True</property>
-+                                <property name="fill">True</property>
-+                                <property name="position">1</property>
-+                              </packing>
-+                            </child>
-+                            <child>
-+                              <object class="GtkVBox" id="vbox14">
-+                                <property name="visible">True</property>
-+                                <property name="can_focus">False</property>
 +                                <child>
-+                                  <object class="GtkLabel" id="label13">
++                                  <object class="GtkLabel" id="advanced_system">
 +                                    <property name="visible">True</property>
-+                                    <property name="can_focus">False</property>
-+                                    <property name="label" translatable="yes">Select the system default policy type.</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="xalign">0.019999999552965164</property>
++                                    <property name="label" translatable="yes">Advanced &gt;&gt;</property>
++                                    <property name="selectable">True</property>
++                                    <property name="ellipsize">end</property>
++                                    <attributes>
++                                      <attribute name="foreground" value="#00004e4e9999"/>
++                                    </attributes>
++                                    <signal name="button-press-event" handler="on_advanced_system_button_press_event" swapped="no"/>
 +                                  </object>
 +                                  <packing>
-+                                    <property name="expand">True</property>
-+                                    <property name="fill">True</property>
-+                                    <property name="position">0</property>
++                                    <property name="top_attach">4</property>
 +                                  </packing>
 +                                </child>
 +                                <child>
-+                                  <object class="GtkHBox" id="hbox19">
++                                  <object class="GtkHBox" id="box8">
 +                                    <property name="visible">True</property>
 +                                    <property name="can_focus">False</property>
 +                                    <child>
-+                                      <object class="GtkLabel" id="label12">
-+                                        <property name="visible">True</property>
++                                      <object class="GtkLabel" id="system_policy_type_label">
 +                                        <property name="can_focus">False</property>
++                                        <property name="margin_left">5</property>
++                                        <property name="xalign">0</property>
 +                                        <property name="label" translatable="yes">System Policy Type:</property>
++                                        <property name="width_chars">15</property>
 +                                      </object>
 +                                      <packing>
-+                                        <property name="expand">True</property>
-+                                        <property name="fill">True</property>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
 +                                        <property name="position">0</property>
 +                                      </packing>
 +                                    </child>
 +                                    <child>
-+                                      <object class="GtkVBox" id="vbox18">
-+                                        <property name="visible">True</property>
++                                      <object class="GtkComboBox" id="system_policy_type_combobox">
++                                        <property name="width_request">200</property>
 +                                        <property name="can_focus">False</property>
++                                        <property name="margin_left">10</property>
++                                        <property name="model">system_policy_type_liststore</property>
++                                        <signal name="changed" handler="on_system_policy_type_combobox_changed" swapped="no"/>
 +                                        <child>
-+                                          <object class="GtkComboBox" id="system_policy_type_combobox">
-+                                            <property name="visible">True</property>
-+                                            <property name="can_focus">False</property>
-+                                            <property name="model">system_policy_type_liststore</property>
-+                                            <signal name="changed" handler="on_system_policy_type_combobox_changed" swapped="no"/>
-+                                            <child>
-+                                              <object class="GtkCellRendererText" id="cellrenderertext20"/>
-+                                              <attributes>
-+                                                <attribute name="text">0</attribute>
-+                                              </attributes>
-+                                            </child>
-+                                          </object>
-+                                          <packing>
-+                                            <property name="expand">True</property>
-+                                            <property name="fill">True</property>
-+                                            <property name="position">0</property>
-+                                          </packing>
++                                          <object class="GtkCellRendererText" id="cellrenderertext20"/>
++                                          <attributes>
++                                            <attribute name="text">0</attribute>
++                                          </attributes>
 +                                        </child>
 +                                      </object>
 +                                      <packing>
-+                                        <property name="expand">True</property>
++                                        <property name="expand">False</property>
 +                                        <property name="fill">True</property>
 +                                        <property name="position">1</property>
 +                                      </packing>
 +                                    </child>
 +                                  </object>
 +                                  <packing>
-+                                    <property name="expand">False</property>
-+                                    <property name="fill">True</property>
-+                                    <property name="position">1</property>
++                                    <property name="top_attach">5</property>
 +                                  </packing>
 +                                </child>
 +                              </object>
-+                              <packing>
-+                                <property name="expand">True</property>
-+                                <property name="fill">True</property>
-+                                <property name="position">2</property>
-+                              </packing>
 +                            </child>
-+                          </object>
-+                          <packing>
-+                            <property name="expand">True</property>
++                            <child type="label">
++                              <object class="GtkLabel" id="label12">
++                                <property name="visible">True</property>
++                                <property name="can_focus">False</property>
++                                <property name="label" translatable="yes">&lt;b&gt;System Mode&lt;/b&gt;</property>
++                                <property name="use_markup">True</property>
++                              </object>
++                            </child>
++                          </object>
++                          <packing>
++                            <property name="expand">False</property>
 +                            <property name="fill">True</property>
++                            <property name="padding">10</property>
 +                            <property name="position">0</property>
 +                          </packing>
 +                        </child>
 +                        <child>
-+                          <object class="GtkVBox" id="vbox10">
++                          <object class="GtkFrame" id="System_configuration_frame">
 +                            <property name="visible">True</property>
 +                            <property name="can_focus">False</property>
++                            <property name="label_xalign">0</property>
++                            <property name="shadow_type">out</property>
 +                            <child>
-+                              <object class="GtkHBox" id="hbox16">
++                              <object class="GtkTable" id="grid2">
 +                                <property name="visible">True</property>
 +                                <property name="can_focus">False</property>
 +                                <child>
-+                                  <object class="GtkButton" id="Import_button">
-+                                    <property name="label" translatable="yes">Import</property>
-+                                    <property name="width_request">65</property>
++                                  <object class="GtkLabel" id="label10">
 +                                    <property name="visible">True</property>
-+                                    <property name="can_focus">True</property>
-+                                    <property name="receives_default">True</property>
-+                                    <signal name="clicked" handler="on_Import_button_clicked" swapped="no"/>
++                                    <property name="can_focus">False</property>
++                                    <property name="label" translatable="yes">Import system settings from another machine</property>
 +                                  </object>
 +                                  <packing>
-+                                    <property name="expand">False</property>
-+                                    <property name="fill">False</property>
-+                                    <property name="pack_type">end</property>
-+                                    <property name="position">0</property>
++                                    <property name="x_options"/>
 +                                  </packing>
 +                                </child>
 +                                <child>
-+                                  <object class="GtkLabel" id="label9">
++                                  <object class="GtkButton" id="Import_button">
++                                    <property name="label" translatable="yes">Import</property>
++                                    <property name="width_request">65</property>
 +                                    <property name="visible">True</property>
-+                                    <property name="can_focus">False</property>
-+                                    <property name="label" translatable="yes">Import system settings from another machine.</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">True</property>
++                                    <signal name="clicked" handler="on_Import_button_clicked" swapped="no"/>
 +                                  </object>
 +                                  <packing>
-+                                    <property name="expand">False</property>
-+                                    <property name="fill">False</property>
-+                                    <property name="padding">10</property>
-+                                    <property name="position">1</property>
++                                    <property name="left_attach">1</property>
++                                    <property name="x_options"/>
++                                    <property name="x_padding">10</property>
 +                                  </packing>
 +                                </child>
-+                              </object>
-+                              <packing>
-+                                <property name="expand">False</property>
-+                                <property name="fill">True</property>
-+                                <property name="padding">60</property>
-+                                <property name="position">0</property>
-+                              </packing>
-+                            </child>
-+                            <child>
-+                              <object class="GtkHBox" id="hbox4">
-+                                <property name="visible">True</property>
-+                                <property name="can_focus">False</property>
 +                                <child>
-+                                  <object class="GtkLabel" id="label10">
++                                  <object class="GtkLabel" id="label11">
 +                                    <property name="visible">True</property>
 +                                    <property name="can_focus">False</property>
-+                                    <property name="label" translatable="yes">Export system settings to a file.</property>
++                                    <property name="label" translatable="yes">Export system settings to a file</property>
 +                                  </object>
 +                                  <packing>
-+                                    <property name="expand">False</property>
-+                                    <property name="fill">False</property>
-+                                    <property name="padding">10</property>
-+                                    <property name="position">0</property>
++                                    <property name="top_attach">1</property>
++                                    <property name="x_options"/>
 +                                  </packing>
 +                                </child>
 +                                <child>
@@ -520404,38 +521947,30 @@ index 0000000..da6318f
 +                                    <signal name="clicked" handler="on_Export_button_clicked" swapped="no"/>
 +                                  </object>
 +                                  <packing>
-+                                    <property name="expand">False</property>
-+                                    <property name="fill">False</property>
-+                                    <property name="pack_type">end</property>
-+                                    <property name="position">1</property>
++                                    <property name="left_attach">1</property>
++                                    <property name="top_attach">1</property>
++                                    <property name="x_options"/>
++                                    <property name="x_padding">10</property>
 +                                  </packing>
 +                                </child>
-+                              </object>
-+                              <packing>
-+                                <property name="expand">False</property>
-+                                <property name="fill">True</property>
-+                                <property name="padding">60</property>
-+                                <property name="position">1</property>
-+                              </packing>
-+                            </child>
-+                            <child>
-+                              <object class="GtkHBox" id="hbox17">
-+                                <property name="visible">True</property>
-+                                <property name="can_focus">False</property>
 +                                <child>
-+                                  <object class="GtkLabel" id="label11">
++                                  <object class="GtkLabel" id="label13">
 +                                    <property name="visible">True</property>
 +                                    <property name="can_focus">False</property>
-+                                    <property name="label" translatable="yes">Relabel all files back to system defaults on reboot.</property>
++                                    <property name="label" translatable="yes">Relabel all files back to system defaults on reboot</property>
 +                                  </object>
 +                                  <packing>
-+                                    <property name="expand">False</property>
-+                                    <property name="fill">False</property>
-+                                    <property name="padding">10</property>
-+                                    <property name="position">0</property>
++                                    <property name="top_attach">3</property>
++                                    <property name="x_options"/>
 +                                  </packing>
 +                                </child>
 +                                <child>
++                                  <placeholder/>
++                                </child>
++                                <child>
++                                  <placeholder/>
++                                </child>
++                                <child>
 +                                  <object class="GtkToggleButton" id="Relabel_button">
 +                                    <property name="label" translatable="yes">Relabel</property>
 +                                    <property name="visible">True</property>
@@ -520444,23 +521979,25 @@ index 0000000..da6318f
 +                                    <signal name="toggled" handler="on_Relabel_button_toggled" swapped="no"/>
 +                                  </object>
 +                                  <packing>
-+                                    <property name="expand">False</property>
-+                                    <property name="fill">False</property>
-+                                    <property name="pack_type">end</property>
-+                                    <property name="position">1</property>
++                                    <property name="left_attach">1</property>
++                                    <property name="top_attach">3</property>
++                                    <property name="x_options"/>
++                                    <property name="x_padding">10</property>
 +                                  </packing>
 +                                </child>
 +                              </object>
-+                              <packing>
-+                                <property name="expand">False</property>
-+                                <property name="fill">True</property>
-+                                <property name="padding">60</property>
-+                                <property name="position">2</property>
-+                              </packing>
++                            </child>
++                            <child type="label">
++                              <object class="GtkLabel" id="label9">
++                                <property name="visible">True</property>
++                                <property name="can_focus">False</property>
++                                <property name="label" translatable="yes">&lt;b&gt;System Configuration&lt;/b&gt;</property>
++                                <property name="use_markup">True</property>
++                              </object>
 +                            </child>
 +                          </object>
 +                          <packing>
-+                            <property name="expand">True</property>
++                            <property name="expand">False</property>
 +                            <property name="fill">True</property>
 +                            <property name="position">1</property>
 +                          </packing>
@@ -520469,7 +522006,7 @@ index 0000000..da6318f
 +                      <packing>
 +                        <property name="expand">True</property>
 +                        <property name="fill">True</property>
-+                        <property name="position">1</property>
++                        <property name="position">2</property>
 +                      </packing>
 +                    </child>
 +                  </object>
@@ -520518,7 +522055,7 @@ index 0000000..da6318f
 +                  </object>
 +                  <packing>
 +                    <property name="expand">False</property>
-+                    <property name="fill">True</property>
++                    <property name="fill">False</property>
 +                    <property name="position">2</property>
 +                  </packing>
 +                </child>
@@ -520551,30 +522088,6 @@ index 0000000..da6318f
 +      </object>
 +    </child>
 +  </object>
-+  <object class="GtkTreeStore" id="Update_treestore">
-+    <columns>
-+      <!-- column-name Select -->
-+      <column type="gboolean"/>
-+      <!-- column-name Description -->
-+      <column type="gchararray"/>
-+      <!-- column-name Section -->
-+      <column type="gchararray"/>
-+      <!-- column-name Action -->
-+      <column type="gchararray"/>
-+      <!-- column-name Visible -->
-+      <column type="gboolean"/>
-+    </columns>
-+  </object>
-+  <object class="GtkFileChooserDialog" id="add_path_dialog">
-+    <property name="can_focus">False</property>
-+    <property name="border_width">5</property>
-+    <property name="role">GtkFileChooserDialog</property>
-+    <property name="type_hint">dialog</property>
-+    <property name="action">save</property>
-+  </object>
-+  <object class="GtkTreeModelSort" id="advanced_treemodel_sort">
-+    <property name="model">advanced_treemodel_filter</property>
-+  </object>
 +  <object class="GtkWindow" id="advanced_search_window">
 +    <property name="can_focus">False</property>
 +    <property name="window_position">center-on-parent</property>
@@ -520596,7 +522109,6 @@ index 0000000..da6318f
 +                <property name="visible">True</property>
 +                <property name="can_focus">True</property>
 +                <property name="invisible_char">●</property>
-+                <property name="invisible_char_set">True</property>
 +                <property name="primary_icon_stock">gtk-find</property>
 +                <property name="secondary_icon_activatable">False</property>
 +                <signal name="changed" handler="on_advanced_filter_entry_changed" swapped="no"/>
@@ -520660,6 +522172,9 @@ index 0000000..da6318f
 +                <property name="can_focus">True</property>
 +                <property name="model">advanced_treemodel_sort</property>
 +                <signal name="row-activated" handler="on_advanced_search_treeview_row_activated" swapped="no"/>
++                <child internal-child="selection">
++                  <object class="GtkTreeSelection" id="treeview-selection10"/>
++                </child>
 +                <child>
 +                  <object class="GtkTreeViewColumn" id="treeviewcolumn14">
 +                    <property name="title" translatable="yes">Applications</property>
@@ -520713,105 +522228,41 @@ index 0000000..da6318f
 +      </object>
 +    </child>
 +  </object>
-+  <object class="GtkTreeModelFilter" id="advanced_treemodel_filter">
-+    <property name="child_model">Advanced_search_liststore</property>
-+  </object>
-+  <object class="GtkTreeStore" id="application_filetypes_treestore">
-+    <columns>
-+      <!-- column-name File -->
-+      <column type="gchararray"/>
-+      <!-- column-name Description -->
-+      <column type="gchararray"/>
-+      <!-- column-name gchararray1 -->
-+      <column type="gchararray"/>
-+      <!-- column-name Label -->
-+      <column type="gboolean"/>
-+      <!-- column-name Mislabled -->
-+      <column type="gboolean"/>
-+      <!-- column-name Cur -->
-+      <column type="gchararray"/>
-+      <!-- column-name Con -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkTreeModelFilter" id="application_filetypes_treemodelfilter">
-+    <property name="child_model">application_filetypes_treestore</property>
-+  </object>
-+  <object class="GtkTreeModelSort" id="application_filetypes_treemodelsort">
-+    <property name="model">application_filetypes_treemodelfilter</property>
-+  </object>
-+  <object class="GtkListStore" id="application_liststore">
-+    <columns>
-+      <!-- column-name Application -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkListStore" id="application_tree_list">
-+    <columns>
-+      <!-- column-name Process -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkTreeModelFilter" id="application_treemodelfilter">
-+    <property name="child_model">application_liststore</property>
-+  </object>
-+  <object class="GtkListStore" id="boolean_liststore">
-+    <columns>
-+      <!-- column-name Active -->
-+      <column type="gboolean"/>
-+      <!-- column-name Description -->
-+      <column type="gchararray"/>
-+      <!-- column-name Name -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkTreeModelFilter" id="boolean_treemodelfilter">
-+    <property name="child_model">boolean_liststore</property>
-+  </object>
-+  <object class="GtkTreeModelSort" id="boolean_treemodelsort">
-+    <property name="model">boolean_treemodelfilter</property>
-+  </object>
-+  <object class="GtkListStore" id="booleans_more_detail_liststore">
-+    <columns>
-+      <!-- column-name Detail -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkListStore" id="delete_files_liststore">
-+    <columns>
-+      <!-- column-name Select -->
-+      <column type="gboolean"/>
-+      <!-- column-name Path -->
-+      <column type="gchararray"/>
-+      <!-- column-name Label -->
-+      <column type="gchararray"/>
-+      <!-- column-name Class -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkListStore" id="delete_network_liststore">
-+    <columns>
-+      <!-- column-name Select -->
-+      <column type="gboolean"/>
-+      <!-- column-name Port -->
-+      <column type="gchararray"/>
-+      <!-- column-name Protocol -->
-+      <column type="gchararray"/>
-+      <!-- column-name Type -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkTreeModelFilter" id="executable_files_treemodelfilter">
-+    <property name="child_model">executable_files_treestore</property>
-+  </object>
-+  <object class="GtkTreeModelSort" id="executable_files_treemodelsort">
-+    <property name="model">executable_files_treemodelfilter</property>
-+  </object>
-+  <object class="GtkListStore" id="files_class_combo_store">
-+    <columns>
-+      <!-- column-name gchararray1 -->
-+      <column type="gchararray"/>
-+    </columns>
++  <object class="GtkWindow" id="booleans_more_detail_window">
++    <property name="can_focus">False</property>
++    <property name="title" translatable="yes">More Details</property>
++    <property name="window_position">center-on-parent</property>
++    <property name="default_width">650</property>
++    <property name="default_height">420</property>
++    <property name="transient_for">SELinux_window</property>
++    <signal name="delete-event" handler="gtk_widget_hide" swapped="no"/>
++    <child>
++      <object class="GtkScrolledWindow" id="scrolledwindow13">
++        <property name="visible">True</property>
++        <property name="can_focus">True</property>
++        <property name="shadow_type">in</property>
++        <child>
++          <object class="GtkTreeView" id="booleans_more_detail_treeview">
++            <property name="visible">True</property>
++            <property name="can_focus">True</property>
++            <property name="model">booleans_more_detail_liststore</property>
++            <child internal-child="selection">
++              <object class="GtkTreeSelection" id="treeview-selection15"/>
++            </child>
++            <child>
++              <object class="GtkTreeViewColumn" id="more_detail1">
++                <child>
++                  <object class="GtkCellRendererText" id="cellrenderertext47"/>
++                  <attributes>
++                    <attribute name="text">0</attribute>
++                  </attributes>
++                </child>
++              </object>
++            </child>
++          </object>
++        </child>
++      </object>
++    </child>
 +  </object>
 +  <object class="GtkWindow" id="delete_window_files">
 +    <property name="can_focus">False</property>
@@ -520830,7 +522281,10 @@ index 0000000..da6318f
 +          <object class="GtkLabel" id="label4">
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
++            <property name="xalign">0</property>
++            <property name="xpad">10</property>
 +            <property name="label" translatable="yes">Select file labeling to delete. File labeling will be deleted when update is applied.</property>
++            <property name="justify">fill</property>
 +            <property name="wrap">True</property>
 +          </object>
 +          <packing>
@@ -520844,6 +522298,9 @@ index 0000000..da6318f
 +            <property name="visible">True</property>
 +            <property name="can_focus">True</property>
 +            <property name="model">delete_files_liststore</property>
++            <child internal-child="selection">
++              <object class="GtkTreeSelection" id="treeview-selection11"/>
++            </child>
 +            <child>
 +              <object class="GtkTreeViewColumn" id="Select">
 +                <property name="min_width">20</property>
@@ -520910,12 +522367,12 @@ index 0000000..da6318f
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <child>
-+              <object class="GtkButton" id="cancel_delete_files">
-+                <property name="label" translatable="yes">Cancel</property>
++              <object class="GtkButton" id="save_delete_files">
++                <property name="label" translatable="yes">Delete</property>
 +                <property name="visible">True</property>
 +                <property name="can_focus">True</property>
 +                <property name="receives_default">True</property>
-+                <signal name="clicked" handler="on_cancel_delete_files_clicked" swapped="no"/>
++                <signal name="clicked" handler="on_save_delete_files_clicked" swapped="no"/>
 +              </object>
 +              <packing>
 +                <property name="expand">False</property>
@@ -520925,12 +522382,12 @@ index 0000000..da6318f
 +              </packing>
 +            </child>
 +            <child>
-+              <object class="GtkButton" id="save_delete_files">
-+                <property name="label" translatable="yes">delete</property>
++              <object class="GtkButton" id="cancel_delete_files">
++                <property name="label" translatable="yes">Cancel</property>
 +                <property name="visible">True</property>
 +                <property name="can_focus">True</property>
 +                <property name="receives_default">True</property>
-+                <signal name="clicked" handler="on_save_delete_files_clicked" swapped="no"/>
++                <signal name="clicked" handler="on_cancel_delete_files_clicked" swapped="no"/>
 +              </object>
 +              <packing>
 +                <property name="expand">False</property>
@@ -520966,7 +522423,10 @@ index 0000000..da6318f
 +          <object class="GtkLabel" id="label5">
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
++            <property name="xalign">0</property>
++            <property name="xpad">10</property>
 +            <property name="label" translatable="yes">Select ports to delete. Ports will be deleted when update is applied.</property>
++            <property name="justify">fill</property>
 +            <property name="wrap">True</property>
 +          </object>
 +          <packing>
@@ -520982,6 +522442,9 @@ index 0000000..da6318f
 +            <property name="model">delete_network_liststore</property>
 +            <property name="headers_clickable">False</property>
 +            <property name="search_column">0</property>
++            <child internal-child="selection">
++              <object class="GtkTreeSelection" id="treeview-selection12"/>
++            </child>
 +            <child>
 +              <object class="GtkTreeViewColumn" id="Select1">
 +                <property name="min_width">20</property>
@@ -521048,21 +522511,6 @@ index 0000000..da6318f
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <child>
-+              <object class="GtkButton" id="cancel_delete_network">
-+                <property name="label" translatable="yes">Cancel</property>
-+                <property name="visible">True</property>
-+                <property name="can_focus">True</property>
-+                <property name="receives_default">True</property>
-+                <signal name="clicked" handler="on_cancel_delete_network_clicked" swapped="no"/>
-+              </object>
-+              <packing>
-+                <property name="expand">False</property>
-+                <property name="fill">False</property>
-+                <property name="pack_type">end</property>
-+                <property name="position">0</property>
-+              </packing>
-+            </child>
-+            <child>
 +              <object class="GtkButton" id="save_delete_network">
 +                <property name="label" translatable="yes">Delete</property>
 +                <property name="visible">True</property>
@@ -521074,176 +522522,34 @@ index 0000000..da6318f
 +                <property name="expand">False</property>
 +                <property name="fill">False</property>
 +                <property name="pack_type">end</property>
-+                <property name="position">1</property>
-+              </packing>
-+            </child>
-+          </object>
-+          <packing>
-+            <property name="expand">False</property>
-+            <property name="fill">True</property>
-+            <property name="position">2</property>
-+          </packing>
-+        </child>
-+      </object>
-+    </child>
-+  </object>
-+  <object class="GtkEntryCompletion" id="entrycompletion_obj">
-+    <signal name="match-selected" handler="on_SELinux_window_configure_event" swapped="no"/>
-+    <signal name="match-selected" handler="on_completion_entry_changed" swapped="no"/>
-+    <signal name="match-selected" handler="on_entrycompletion_obj_match_selected" swapped="no"/>
-+  </object>
-+  <object class="GtkWindow" id="error_check_window">
-+    <property name="can_focus">False</property>
-+    <property name="type">popup</property>
-+    <property name="resizable">False</property>
-+    <property name="modal">True</property>
-+    <property name="window_position">center-on-parent</property>
-+    <property name="default_width">440</property>
-+    <property name="default_height">250</property>
-+    <property name="transient_for">SELinux_window</property>
-+    <child>
-+      <object class="GtkVBox" id="vbox27">
-+        <property name="visible">True</property>
-+        <property name="can_focus">False</property>
-+        <child>
-+          <object class="GtkLabel" id="error_check_label">
-+            <property name="visible">True</property>
-+            <property name="can_focus">False</property>
-+            <property name="label" translatable="yes">The entry that was entered is incorrect.  Please try again in the ex:/.../... format.</property>
-+            <property name="wrap">True</property>
-+          </object>
-+          <packing>
-+            <property name="expand">True</property>
-+            <property name="fill">True</property>
-+            <property name="position">0</property>
-+          </packing>
-+        </child>
-+        <child>
-+          <object class="GtkHBox" id="hbox22">
-+            <property name="visible">True</property>
-+            <property name="can_focus">False</property>
-+            <child>
-+              <object class="GtkLabel" id="label20">
-+                <property name="visible">True</property>
-+                <property name="can_focus">False</property>
-+              </object>
-+              <packing>
-+                <property name="expand">True</property>
-+                <property name="fill">True</property>
 +                <property name="position">0</property>
 +              </packing>
 +            </child>
 +            <child>
-+              <object class="GtkButton" id="retry_button_files">
-+                <property name="label" translatable="yes">Retry</property>
++              <object class="GtkButton" id="cancel_delete_network">
++                <property name="label" translatable="yes">Cancel</property>
 +                <property name="visible">True</property>
 +                <property name="can_focus">True</property>
 +                <property name="receives_default">True</property>
-+                <signal name="clicked" handler="on_retry_button_files_clicked" swapped="no"/>
++                <signal name="clicked" handler="on_cancel_delete_network_clicked" swapped="no"/>
 +              </object>
 +              <packing>
 +                <property name="expand">False</property>
 +                <property name="fill">False</property>
++                <property name="pack_type">end</property>
 +                <property name="position">1</property>
 +              </packing>
 +            </child>
-+            <child>
-+              <object class="GtkLabel" id="label21">
-+                <property name="visible">True</property>
-+                <property name="can_focus">False</property>
-+              </object>
-+              <packing>
-+                <property name="expand">True</property>
-+                <property name="fill">True</property>
-+                <property name="position">2</property>
-+              </packing>
-+            </child>
 +          </object>
 +          <packing>
 +            <property name="expand">False</property>
-+            <property name="fill">False</property>
-+            <property name="position">1</property>
++            <property name="fill">True</property>
++            <property name="position">2</property>
 +          </packing>
 +        </child>
 +      </object>
 +    </child>
 +  </object>
-+  <object class="GtkTreeStore" id="executable_files_treestore">
-+    <columns>
-+      <!-- column-name Executable -->
-+      <column type="gchararray"/>
-+      <!-- column-name SELinux -->
-+      <column type="gchararray"/>
-+      <!-- column-name Class -->
-+      <column type="gchararray"/>
-+      <!-- column-name Fix -->
-+      <column type="gboolean"/>
-+      <!-- column-name Mislabled -->
-+      <column type="gboolean"/>
-+      <!-- column-name Cur -->
-+      <column type="gchararray"/>
-+      <!-- column-name Con -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkListStore" id="files_mls_combo_store">
-+    <columns>
-+      <!-- column-name mls -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkListStore" id="files_type_combo_store">
-+    <columns>
-+      <!-- column-name Type -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkListStore" id="in_network_liststore">
-+    <columns>
-+      <!-- column-name Port -->
-+      <column type="gchararray"/>
-+      <!-- column-name Protocol -->
-+      <column type="gchararray"/>
-+      <!-- column-name Modified -->
-+      <column type="gchararray"/>
-+      <!-- column-name SELinux -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkTreeModelFilter" id="in_network_treemodelfilter">
-+    <property name="child_model">in_network_liststore</property>
-+  </object>
-+  <object class="GtkTreeModelSort" id="in_network_treemodelsort">
-+    <property name="model">in_network_treemodelfilter</property>
-+  </object>
-+  <object class="GtkWindow" id="loading_gui">
-+    <property name="width_request">300</property>
-+    <property name="height_request">25</property>
-+    <property name="visible">True</property>
-+    <property name="can_focus">False</property>
-+    <property name="title" translatable="yes">Analyzing Policy...</property>
-+    <property name="resizable">False</property>
-+    <property name="window_position">mouse</property>
-+    <signal name="delete-event" handler="gtk_widget_hide" swapped="no"/>
-+    <child>
-+      <object class="GtkProgressBar" id="progress_bar">
-+        <property name="visible">True</property>
-+        <property name="can_focus">False</property>
-+        <property name="pulse_step">0.050000000223517416</property>
-+        <property name="show_text">True</property>
-+      </object>
-+    </child>
-+  </object>
-+  <object class="GtkListStore" id="modify_liststore_files">
-+    <columns>
-+      <!-- column-name Path -->
-+      <column type="gchararray"/>
-+      <!-- column-name File -->
-+      <column type="gchararray"/>
-+      <!-- column-name Class -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
 +  <object class="GtkWindow" id="moreTypes_window_files">
 +    <property name="can_focus">False</property>
 +    <property name="title" translatable="yes">More Types</property>
@@ -521267,6 +522573,9 @@ index 0000000..da6318f
 +                <property name="can_focus">True</property>
 +                <property name="model">more_types_file_liststore</property>
 +                <signal name="row-activated" handler="on_moreTypes_treeview_files_row_activated" swapped="no"/>
++                <child internal-child="selection">
++                  <object class="GtkTreeSelection" id="treeview-selection13"/>
++                </child>
 +                <child>
 +                  <object class="GtkTreeViewColumn" id="treeviewcolumn19">
 +                    <property name="title" translatable="yes">Types</property>
@@ -521304,691 +522613,6 @@ index 0000000..da6318f
 +      </object>
 +    </child>
 +  </object>
-+  <object class="GtkListStore" id="more_types_file_liststore">
-+    <columns>
-+      <!-- column-name types -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkListStore" id="network_mls_combo_store">
-+    <columns>
-+      <!-- column-name mls -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkListStore" id="network_protocol_combo_store">
-+    <columns>
-+      <!-- column-name protocol -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkListStore" id="network_type_combo_store">
-+    <columns>
-+      <!-- column-name Type -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkListStore" id="out_network_liststore">
-+    <columns>
-+      <!-- column-name Port -->
-+      <column type="gchararray"/>
-+      <!-- column-name Protocol -->
-+      <column type="gchararray"/>
-+      <!-- column-name Modified -->
-+      <column type="gchararray"/>
-+      <!-- column-name SELinux -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkTreeModelFilter" id="out_network_treemodelfilter">
-+    <property name="child_model">out_network_liststore</property>
-+  </object>
-+  <object class="GtkTreeModelSort" id="out_network_treemodelsort">
-+    <property name="model">out_network_treemodelfilter</property>
-+  </object>
-+  <object class="GtkWindow" id="popup_window_files">
-+    <property name="can_focus">False</property>
-+    <property name="title" translatable="yes">Add a File</property>
-+    <property name="resizable">False</property>
-+    <property name="modal">True</property>
-+    <property name="window_position">center-always</property>
-+    <signal name="delete-event" handler="gtk_widget_hide" swapped="no"/>
-+    <child>
-+      <object class="GtkVBox" id="vbox20">
-+        <property name="visible">True</property>
-+        <property name="can_focus">False</property>
-+        <child>
-+          <object class="GtkLabel" id="Files_label">
-+            <property name="visible">True</property>
-+            <property name="can_focus">False</property>
-+            <property name="label" translatable="yes">&lt;operation&gt; File Labeling for &lt;selected domain&gt;. File labels will be created when update is applied.</property>
-+            <property name="wrap">True</property>
-+          </object>
-+          <packing>
-+            <property name="expand">True</property>
-+            <property name="fill">True</property>
-+            <property name="position">0</property>
-+          </packing>
-+        </child>
-+        <child>
-+          <object class="GtkTable" id="table2">
-+            <property name="visible">True</property>
-+            <property name="can_focus">False</property>
-+            <property name="n_rows">7</property>
-+            <property name="n_columns">2</property>
-+            <child>
-+              <placeholder/>
-+            </child>
-+            <child>
-+              <placeholder/>
-+            </child>
-+            <child>
-+              <placeholder/>
-+            </child>
-+            <child>
-+              <object class="GtkHBox" id="hbox23">
-+                <property name="visible">True</property>
-+                <property name="can_focus">False</property>
-+                <child>
-+                  <object class="GtkButton" id="cancel_files">
-+                    <property name="label" translatable="yes">Cancel</property>
-+                    <property name="visible">True</property>
-+                    <property name="can_focus">True</property>
-+                    <property name="receives_default">True</property>
-+                    <signal name="clicked" handler="on_cancel_files_clicked" swapped="no"/>
-+                  </object>
-+                  <packing>
-+                    <property name="expand">False</property>
-+                    <property name="fill">True</property>
-+                    <property name="pack_type">end</property>
-+                    <property name="position">0</property>
-+                  </packing>
-+                </child>
-+                <child>
-+                  <object class="GtkButton" id="save_changes_files">
-+                    <property name="label" translatable="yes">Save changes</property>
-+                    <property name="visible">True</property>
-+                    <property name="can_focus">True</property>
-+                    <property name="receives_default">True</property>
-+                    <signal name="clicked" handler="on_save_changes_files_clicked" swapped="no"/>
-+                  </object>
-+                  <packing>
-+                    <property name="expand">False</property>
-+                    <property name="fill">True</property>
-+                    <property name="pack_type">end</property>
-+                    <property name="position">1</property>
-+                  </packing>
-+                </child>
-+              </object>
-+              <packing>
-+                <property name="left_attach">1</property>
-+                <property name="right_attach">2</property>
-+                <property name="top_attach">6</property>
-+                <property name="bottom_attach">7</property>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkLabel" id="mls_label_files">
-+                <property name="width_request">40</property>
-+                <property name="can_focus">False</property>
-+                <property name="xalign">0</property>
-+                <property name="xpad">10</property>
-+                <property name="label" translatable="yes">MLS</property>
-+              </object>
-+              <packing>
-+                <property name="top_attach">5</property>
-+                <property name="bottom_attach">6</property>
-+                <property name="x_options">GTK_FILL</property>
-+                <property name="y_options"/>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkComboBox" id="files_mls_combobox">
-+                <property name="width_request">360</property>
-+                <property name="can_focus">False</property>
-+                <property name="model">files_mls_combo_store</property>
-+                <child>
-+                  <object class="GtkCellRendererText" id="cellrenderertext27"/>
-+                  <attributes>
-+                    <attribute name="text">0</attribute>
-+                  </attributes>
-+                </child>
-+              </object>
-+              <packing>
-+                <property name="left_attach">1</property>
-+                <property name="right_attach">2</property>
-+                <property name="top_attach">5</property>
-+                <property name="bottom_attach">6</property>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkLabel" id="Advanced_text_files">
-+                <property name="visible">True</property>
-+                <property name="can_focus">False</property>
-+                <property name="xalign">0</property>
-+                <property name="xpad">10</property>
-+                <property name="label" translatable="yes">Advanced &gt;&gt;</property>
-+                <property name="selectable">True</property>
-+                <attributes>
-+                  <attribute name="foreground" value="#00004e4e9999"/>
-+                </attributes>
-+                <signal name="button-press-event" handler="on_Advanced_text_files_button_press_event" swapped="no"/>
-+              </object>
-+              <packing>
-+                <property name="top_attach">4</property>
-+                <property name="bottom_attach">5</property>
-+                <property name="x_options">GTK_FILL</property>
-+                <property name="y_options"/>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkLabel" id="label1">
-+                <property name="width_request">40</property>
-+                <property name="visible">True</property>
-+                <property name="can_focus">False</property>
-+                <property name="xalign">0</property>
-+                <property name="xpad">10</property>
-+                <property name="label" translatable="yes">Class</property>
-+              </object>
-+              <packing>
-+                <property name="top_attach">3</property>
-+                <property name="bottom_attach">4</property>
-+                <property name="x_options">GTK_FILL</property>
-+                <property name="y_options"/>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkLabel" id="label2">
-+                <property name="width_request">40</property>
-+                <property name="visible">True</property>
-+                <property name="can_focus">False</property>
-+                <property name="xalign">0</property>
-+                <property name="xpad">10</property>
-+                <property name="label" translatable="yes">Type</property>
-+              </object>
-+              <packing>
-+                <property name="top_attach">2</property>
-+                <property name="bottom_attach">3</property>
-+                <property name="x_options">GTK_FILL</property>
-+                <property name="y_options"/>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkComboBox" id="files_class_combobox">
-+                <property name="width_request">360</property>
-+                <property name="visible">True</property>
-+                <property name="can_focus">False</property>
-+                <property name="model">files_class_combo_store</property>
-+                <child>
-+                  <object class="GtkCellRendererText" id="cellrenderertext23"/>
-+                  <attributes>
-+                    <attribute name="text">0</attribute>
-+                  </attributes>
-+                </child>
-+              </object>
-+              <packing>
-+                <property name="left_attach">1</property>
-+                <property name="right_attach">2</property>
-+                <property name="top_attach">3</property>
-+                <property name="bottom_attach">4</property>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkVBox" id="vbox22">
-+                <property name="visible">True</property>
-+                <property name="can_focus">False</property>
-+                <child>
-+                  <object class="GtkHBox" id="hbox11">
-+                    <property name="visible">True</property>
-+                    <property name="can_focus">False</property>
-+                    <child>
-+                      <object class="GtkCheckButton" id="make_path_recursive">
-+                        <property name="label" translatable="yes">Make Path Recursive</property>
-+                        <property name="visible">True</property>
-+                        <property name="can_focus">True</property>
-+                        <property name="receives_default">False</property>
-+                        <property name="xalign">0.5</property>
-+                        <property name="draw_indicator">True</property>
-+                        <signal name="toggled" handler="on_make_path_recursive_toggled" swapped="no"/>
-+                      </object>
-+                      <packing>
-+                        <property name="expand">True</property>
-+                        <property name="fill">True</property>
-+                        <property name="position">0</property>
-+                      </packing>
-+                    </child>
-+                    <child>
-+                      <object class="GtkButton" id="Browse_button_files">
-+                        <property name="label" translatable="yes">Browse</property>
-+                        <property name="visible">True</property>
-+                        <property name="can_focus">True</property>
-+                        <property name="receives_default">True</property>
-+                        <signal name="clicked" handler="on_Browse_button_files_clicked" swapped="no"/>
-+                      </object>
-+                      <packing>
-+                        <property name="expand">True</property>
-+                        <property name="fill">True</property>
-+                        <property name="position">1</property>
-+                      </packing>
-+                    </child>
-+                  </object>
-+                  <packing>
-+                    <property name="expand">True</property>
-+                    <property name="fill">True</property>
-+                    <property name="position">0</property>
-+                  </packing>
-+                </child>
-+                <child>
-+                  <object class="GtkHBox" id="hbox25">
-+                    <property name="visible">True</property>
-+                    <property name="can_focus">False</property>
-+                    <child>
-+                      <placeholder/>
-+                    </child>
-+                  </object>
-+                  <packing>
-+                    <property name="expand">True</property>
-+                    <property name="fill">True</property>
-+                    <property name="position">1</property>
-+                  </packing>
-+                </child>
-+              </object>
-+              <packing>
-+                <property name="left_attach">1</property>
-+                <property name="right_attach">2</property>
-+                <property name="top_attach">1</property>
-+                <property name="bottom_attach">2</property>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkLabel" id="label3">
-+                <property name="visible">True</property>
-+                <property name="can_focus">False</property>
-+                <property name="xalign">0</property>
-+                <property name="xpad">10</property>
-+                <property name="label" translatable="yes">Path  </property>
-+              </object>
-+              <packing>
-+                <property name="x_options">GTK_FILL</property>
-+                <property name="y_options"/>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkEntry" id="files_path_entry">
-+                <property name="visible">True</property>
-+                <property name="can_focus">True</property>
-+                <property name="invisible_char">●</property>
-+                <property name="invisible_char_set">True</property>
-+                <property name="primary_icon_activatable">False</property>
-+                <property name="secondary_icon_activatable">False</property>
-+                <signal name="button-press-event" handler="on_files_path_entry_button_press_event" swapped="no"/>
-+                <signal name="changed" handler="on_files_path_entry_changed" swapped="no"/>
-+              </object>
-+              <packing>
-+                <property name="left_attach">1</property>
-+                <property name="right_attach">2</property>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkVBox" id="vbox25">
-+                <property name="visible">True</property>
-+                <property name="can_focus">False</property>
-+                <child>
-+                  <object class="GtkComboBox" id="files_type_combobox">
-+                    <property name="width_request">360</property>
-+                    <property name="visible">True</property>
-+                    <property name="can_focus">False</property>
-+                    <property name="model">files_type_combo_store</property>
-+                    <child>
-+                      <object class="GtkCellRendererText" id="cellrenderertext26"/>
-+                      <attributes>
-+                        <attribute name="text">0</attribute>
-+                      </attributes>
-+                    </child>
-+                  </object>
-+                  <packing>
-+                    <property name="expand">True</property>
-+                    <property name="fill">True</property>
-+                    <property name="position">0</property>
-+                  </packing>
-+                </child>
-+                <child>
-+                  <object class="GtkLabel" id="more_types_files">
-+                    <property name="visible">True</property>
-+                    <property name="can_focus">False</property>
-+                    <property name="label" translatable="yes">More..</property>
-+                    <property name="selectable">True</property>
-+                    <attributes>
-+                      <attribute name="foreground" value="#00004e4e9999"/>
-+                    </attributes>
-+                    <signal name="button-press-event" handler="on_more_types_files_button_press_event" swapped="no"/>
-+                  </object>
-+                  <packing>
-+                    <property name="expand">True</property>
-+                    <property name="fill">True</property>
-+                    <property name="position">1</property>
-+                  </packing>
-+                </child>
-+              </object>
-+              <packing>
-+                <property name="left_attach">1</property>
-+                <property name="right_attach">2</property>
-+                <property name="top_attach">2</property>
-+                <property name="bottom_attach">3</property>
-+              </packing>
-+            </child>
-+          </object>
-+          <packing>
-+            <property name="expand">True</property>
-+            <property name="fill">True</property>
-+            <property name="position">1</property>
-+          </packing>
-+        </child>
-+      </object>
-+    </child>
-+  </object>
-+  <object class="GtkWindow" id="popup_window_network">
-+    <property name="can_focus">False</property>
-+    <property name="title" translatable="yes">Network Port Definitions</property>
-+    <property name="resizable">False</property>
-+    <property name="modal">True</property>
-+    <property name="window_position">center-always</property>
-+    <signal name="delete-event" handler="gtk_widget_hide" swapped="no"/>
-+    <child>
-+      <object class="GtkVBox" id="vbox23">
-+        <property name="visible">True</property>
-+        <property name="can_focus">False</property>
-+        <child>
-+          <object class="GtkLabel" id="Network_label">
-+            <property name="visible">True</property>
-+            <property name="can_focus">False</property>
-+            <property name="label" translatable="yes">&lt;operation&gt; Network Port for &lt;selected domain&gt;.  Ports will be created when update is applied.</property>
-+            <property name="wrap">True</property>
-+          </object>
-+          <packing>
-+            <property name="expand">True</property>
-+            <property name="fill">True</property>
-+            <property name="position">0</property>
-+          </packing>
-+        </child>
-+        <child>
-+          <object class="GtkTable" id="table4">
-+            <property name="visible">True</property>
-+            <property name="can_focus">False</property>
-+            <property name="n_rows">6</property>
-+            <property name="n_columns">2</property>
-+            <child>
-+              <placeholder/>
-+            </child>
-+            <child>
-+              <placeholder/>
-+            </child>
-+            <child>
-+              <object class="GtkLabel" id="label14">
-+                <property name="visible">True</property>
-+                <property name="can_focus">False</property>
-+                <property name="xalign">0</property>
-+                <property name="xpad">10</property>
-+                <property name="label" translatable="yes">Port Number</property>
-+              </object>
-+              <packing>
-+                <property name="y_options"/>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkEntry" id="network_ports_entry">
-+                <property name="visible">True</property>
-+                <property name="can_focus">True</property>
-+                <property name="invisible_char">●</property>
-+                <property name="invisible_char_set">True</property>
-+                <property name="primary_icon_activatable">False</property>
-+                <property name="secondary_icon_activatable">False</property>
-+              </object>
-+              <packing>
-+                <property name="left_attach">1</property>
-+                <property name="right_attach">2</property>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkLabel" id="label6">
-+                <property name="visible">True</property>
-+                <property name="can_focus">False</property>
-+                <property name="xalign">0</property>
-+                <property name="xpad">10</property>
-+                <property name="label" translatable="yes">Protocol</property>
-+              </object>
-+              <packing>
-+                <property name="top_attach">1</property>
-+                <property name="bottom_attach">2</property>
-+                <property name="y_options"/>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkLabel" id="label7">
-+                <property name="visible">True</property>
-+                <property name="can_focus">False</property>
-+                <property name="xalign">0</property>
-+                <property name="xpad">10</property>
-+                <property name="label" translatable="yes">Port Type</property>
-+              </object>
-+              <packing>
-+                <property name="top_attach">2</property>
-+                <property name="bottom_attach">3</property>
-+                <property name="y_options"/>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkLabel" id="Advanced_text_network">
-+                <property name="visible">True</property>
-+                <property name="can_focus">False</property>
-+                <property name="xalign">0</property>
-+                <property name="xpad">10</property>
-+                <property name="label" translatable="yes">Advanced &gt;&gt;</property>
-+                <property name="selectable">True</property>
-+                <attributes>
-+                  <attribute name="foreground" value="#00004e4e9999"/>
-+                </attributes>
-+                <signal name="button-press-event" handler="on_Advanced_text_files_button_press_event" swapped="no"/>
-+              </object>
-+              <packing>
-+                <property name="top_attach">3</property>
-+                <property name="bottom_attach">4</property>
-+                <property name="y_options"/>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkLabel" id="mls_label_network">
-+                <property name="can_focus">False</property>
-+                <property name="xalign">0</property>
-+                <property name="xpad">10</property>
-+                <property name="label" translatable="yes">MLS</property>
-+              </object>
-+              <packing>
-+                <property name="top_attach">4</property>
-+                <property name="bottom_attach">5</property>
-+                <property name="y_options"/>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkComboBox" id="network_mls_combobox">
-+                <property name="width_request">360</property>
-+                <property name="can_focus">False</property>
-+                <property name="model">network_mls_combo_store</property>
-+                <child>
-+                  <object class="GtkCellRendererText" id="cellrenderertext34"/>
-+                  <attributes>
-+                    <attribute name="text">0</attribute>
-+                  </attributes>
-+                </child>
-+              </object>
-+              <packing>
-+                <property name="left_attach">1</property>
-+                <property name="right_attach">2</property>
-+                <property name="top_attach">4</property>
-+                <property name="bottom_attach">5</property>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkComboBox" id="network_type_combobox">
-+                <property name="width_request">360</property>
-+                <property name="visible">True</property>
-+                <property name="can_focus">False</property>
-+                <property name="model">network_type_combo_store</property>
-+                <child>
-+                  <object class="GtkCellRendererText" id="cellrenderertext33"/>
-+                  <attributes>
-+                    <attribute name="text">0</attribute>
-+                  </attributes>
-+                </child>
-+              </object>
-+              <packing>
-+                <property name="left_attach">1</property>
-+                <property name="right_attach">2</property>
-+                <property name="top_attach">2</property>
-+                <property name="bottom_attach">3</property>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkHBox" id="hbox14">
-+                <property name="visible">True</property>
-+                <property name="can_focus">False</property>
-+                <child>
-+                  <object class="GtkButton" id="cancel_network">
-+                    <property name="label" translatable="yes">Cancel</property>
-+                    <property name="visible">True</property>
-+                    <property name="can_focus">True</property>
-+                    <property name="receives_default">True</property>
-+                    <signal name="clicked" handler="on_cancel_network_clicked" swapped="no"/>
-+                  </object>
-+                  <packing>
-+                    <property name="expand">False</property>
-+                    <property name="fill">True</property>
-+                    <property name="pack_type">end</property>
-+                    <property name="position">0</property>
-+                  </packing>
-+                </child>
-+                <child>
-+                  <object class="GtkButton" id="save_changes_network">
-+                    <property name="label" translatable="yes">Save to update</property>
-+                    <property name="visible">True</property>
-+                    <property name="can_focus">True</property>
-+                    <property name="receives_default">True</property>
-+                    <signal name="clicked" handler="on_save_changes_network_clicked" swapped="no"/>
-+                  </object>
-+                  <packing>
-+                    <property name="expand">False</property>
-+                    <property name="fill">True</property>
-+                    <property name="pack_type">end</property>
-+                    <property name="position">1</property>
-+                  </packing>
-+                </child>
-+              </object>
-+              <packing>
-+                <property name="left_attach">1</property>
-+                <property name="right_attach">2</property>
-+                <property name="top_attach">5</property>
-+                <property name="bottom_attach">6</property>
-+              </packing>
-+            </child>
-+            <child>
-+              <object class="GtkHBox" id="hbox28">
-+                <property name="visible">True</property>
-+                <property name="can_focus">False</property>
-+                <child>
-+                  <object class="GtkRadioButton" id="tcp_button">
-+                    <property name="label" translatable="yes">tcp</property>
-+                    <property name="visible">True</property>
-+                    <property name="can_focus">True</property>
-+                    <property name="receives_default">False</property>
-+                    <property name="xalign">0.5</property>
-+                    <property name="active">True</property>
-+                    <property name="draw_indicator">True</property>
-+                    <property name="group">udp_button</property>
-+                  </object>
-+                  <packing>
-+                    <property name="expand">True</property>
-+                    <property name="fill">True</property>
-+                    <property name="position">0</property>
-+                  </packing>
-+                </child>
-+                <child>
-+                  <object class="GtkRadioButton" id="udp_button">
-+                    <property name="label" translatable="yes">udp</property>
-+                    <property name="visible">True</property>
-+                    <property name="can_focus">True</property>
-+                    <property name="receives_default">False</property>
-+                    <property name="xalign">0.5</property>
-+                    <property name="draw_indicator">True</property>
-+                    <property name="group">tcp_button</property>
-+                  </object>
-+                  <packing>
-+                    <property name="expand">True</property>
-+                    <property name="fill">True</property>
-+                    <property name="position">1</property>
-+                  </packing>
-+                </child>
-+              </object>
-+              <packing>
-+                <property name="left_attach">1</property>
-+                <property name="right_attach">2</property>
-+                <property name="top_attach">1</property>
-+                <property name="bottom_attach">2</property>
-+              </packing>
-+            </child>
-+          </object>
-+          <packing>
-+            <property name="expand">True</property>
-+            <property name="fill">True</property>
-+            <property name="position">1</property>
-+          </packing>
-+        </child>
-+      </object>
-+    </child>
-+  </object>
-+  <object class="GtkListStore" id="system_policy_type_liststore">
-+    <columns>
-+      <!-- column-name gchararray1 -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkTreeStore" id="transitions_from_x_treestore">
-+    <columns>
-+      <!-- column-name Enabled -->
-+      <column type="gchararray"/>
-+      <!-- column-name boolnames -->
-+      <column type="gchararray"/>
-+      <!-- column-name Executable -->
-+      <column type="gchararray"/>
-+      <!-- column-name Transtype -->
-+      <column type="gchararray"/>
-+      <!-- column-name Text -->
-+      <column type="gchararray"/>
-+      <!-- column-name Activate -->
-+      <column type="gboolean"/>
-+    </columns>
-+  </object>
-+  <object class="GtkTreeModelFilter" id="transitions_from_x_treemodelfilter">
-+    <property name="child_model">transitions_from_x_treestore</property>
-+  </object>
-+  <object class="GtkTreeModelSort" id="transitions_from_x_treemodelsort">
-+    <property name="model">transitions_from_x_treemodelfilter</property>
-+  </object>
-+  <object class="GtkListStore" id="transitions_into_x_liststore">
-+    <columns>
-+      <!-- column-name Activate -->
-+      <column type="gchararray"/>
-+      <!-- column-name Source -->
-+      <column type="gchararray"/>
-+      <!-- column-name Executable -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkTreeModelFilter" id="transitions_into_x_treemodelfilter">
-+    <property name="child_model">transitions_into_x_liststore</property>
-+  </object>
-+  <object class="GtkTreeModelSort" id="transitions_into_x_treemodelsort">
-+    <property name="model">transitions_into_x_treemodelfilter</property>
-+  </object>
 +  <object class="GtkWindow" id="update_window">
 +    <property name="can_focus">False</property>
 +    <property name="modal">True</property>
@@ -522006,7 +522630,9 @@ index 0000000..da6318f
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <property name="xalign">0</property>
++            <property name="xpad">10</property>
 +            <property name="label" translatable="yes">Review the updates you have made before committing them to the system.  To reset an item, uncheck the checkbox.  All items checked will be updated in the system when you select update.</property>
++            <property name="justify">fill</property>
 +            <property name="wrap">True</property>
 +          </object>
 +          <packing>
@@ -522026,6 +522652,9 @@ index 0000000..da6318f
 +                <property name="can_focus">True</property>
 +                <property name="model">Update_treestore</property>
 +                <property name="search_column">0</property>
++                <child internal-child="selection">
++                  <object class="GtkTreeSelection" id="treeview-selection14"/>
++                </child>
 +                <child>
 +                  <object class="GtkTreeViewColumn" id="Select2">
 +                    <property name="min_width">20</property>
@@ -522095,12 +522724,12 @@ index 0000000..da6318f
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <child>
-+              <object class="GtkButton" id="cancel_update">
-+                <property name="label" translatable="yes">Cancel</property>
++              <object class="GtkButton" id="apply_button">
++                <property name="label" translatable="yes">Apply</property>
 +                <property name="visible">True</property>
 +                <property name="can_focus">True</property>
 +                <property name="receives_default">True</property>
-+                <signal name="clicked" handler="on_cancel_update_clicked" swapped="no"/>
++                <signal name="clicked" handler="on_apply_button_clicked" swapped="no"/>
 +              </object>
 +              <packing>
 +                <property name="expand">False</property>
@@ -522110,12 +522739,12 @@ index 0000000..da6318f
 +              </packing>
 +            </child>
 +            <child>
-+              <object class="GtkButton" id="apply_button">
-+                <property name="label" translatable="yes">Apply</property>
++              <object class="GtkButton" id="cancel_update">
++                <property name="label" translatable="yes">Cancel</property>
 +                <property name="visible">True</property>
 +                <property name="can_focus">True</property>
 +                <property name="receives_default">True</property>
-+                <signal name="clicked" handler="on_apply_button_clicked" swapped="no"/>
++                <signal name="clicked" handler="on_cancel_update_clicked" swapped="no"/>
 +              </object>
 +              <packing>
 +                <property name="expand">False</property>
@@ -522134,30 +522763,6 @@ index 0000000..da6318f
 +      </object>
 +    </child>
 +  </object>
-+  <object class="GtkTreeStore" id="writable_files_treestore">
-+    <columns>
-+      <!-- column-name File -->
-+      <column type="gchararray"/>
-+      <!-- column-name SELinux -->
-+      <column type="gchararray"/>
-+      <!-- column-name File1 -->
-+      <column type="gchararray"/>
-+      <!-- column-name Label -->
-+      <column type="gboolean"/>
-+      <!-- column-name Mislabled -->
-+      <column type="gboolean"/>
-+      <!-- column-name Cur -->
-+      <column type="gchararray"/>
-+      <!-- column-name Con -->
-+      <column type="gchararray"/>
-+    </columns>
-+  </object>
-+  <object class="GtkTreeModelFilter" id="writable_files_treemodelfilter">
-+    <property name="child_model">writable_files_treestore</property>
-+  </object>
-+  <object class="GtkTreeModelSort" id="writable_files_treemodelsort">
-+    <property name="model">writable_files_treemodelfilter</property>
-+  </object>
 +</interface>
 diff --git a/policycoreutils/sepolicy/sepolicy/templates/network.py b/policycoreutils/sepolicy/sepolicy/templates/network.py
 index 4499440..43feee4 100644
diff --git a/policycoreutils.spec b/policycoreutils.spec
index a9e93f4..4033201 100644
--- a/policycoreutils.spec
+++ b/policycoreutils.spec
@@ -7,7 +7,7 @@
 Summary: SELinux policy core utilities
 Name:	 policycoreutils
 Version: 2.1.14
-Release: 74%{?dist}
+Release: 75%{?dist}
 License: GPLv2
 Group:	 System Environment/Base
 # Based on git repository with tag 20101221
@@ -334,6 +334,10 @@ The policycoreutils-restorecond package contains the restorecond service.
 %systemd_postun_with_restart restorecond.service
 
 %changelog
+* Wed Aug 7 2013 Dan Walsh <dwalsh at redhat.com> - 2.1.14-75
+- Update sepolicy gui code, cleanups and add file transition tab
+- Fix semanage fcontext -a --ftype code to work.
+
 * Wed Aug 7 2013 Dan Walsh <dwalsh at redhat.com> - 2.1.14-74
 - If policy is not installed get_bools should not crash
 


More information about the scm-commits mailing list