From 36c9fbc70bad4868673ab5e04bc6b532796d8839 Mon Sep 17 00:00:00 2001 From: Daniel J Walsh Date: Wed, 15 Nov 2006 21:14:38 +0000 Subject: [PATCH] * Wed Nov 15 2006 Dan Walsh 1.33.1-4 - Add group sort for portsPage.py - Add enable/disableaudit to modules page --- policycoreutils-rhat.patch | 478 +++++++++++++++++++++++++++++-------- policycoreutils.spec | 6 +- 2 files changed, 385 insertions(+), 99 deletions(-) diff --git a/policycoreutils-rhat.patch b/policycoreutils-rhat.patch index f628885..553bf65 100644 --- a/policycoreutils-rhat.patch +++ b/policycoreutils-rhat.patch @@ -669,8 +669,8 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/gui/modulesPage.py policycoreutils-1.33.1/gui/modulesPage.py --- nsapolicycoreutils/gui/modulesPage.py 1969-12-31 19:00:00.000000000 -0500 -+++ policycoreutils-1.33.1/gui/modulesPage.py 2006-11-15 08:06:25.000000000 -0500 -@@ -0,0 +1,133 @@ ++++ policycoreutils-1.33.1/gui/modulesPage.py 2006-11-15 13:22:01.000000000 -0500 +@@ -0,0 +1,157 @@ +## modulesPage.py - show selinux mappings +## Copyright (C) 2006 Red Hat, Inc. + @@ -698,6 +698,7 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic +import gobject +import sys +import seobject ++import selinux +from semanagePage import *; + +## @@ -715,7 +716,7 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + +class modulesPage(semanagePage): + def __init__(self, xml): -+ semanagePage.__init__(self, xml, "modules", "SELinux Policy Module") ++ semanagePage.__init__(self, xml, "modules", _("Policy Module")) + self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING) + self.view.set_model(self.store) + self.store.set_sort_column_id(0, gtk.SORT_ASCENDING) @@ -725,10 +726,15 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + self.view.append_column(col) + self.store.set_sort_column_id(0, gtk.SORT_ASCENDING) + col = gtk.TreeViewColumn(_("Version"), gtk.CellRendererText(), text = 1) ++ self.enable_audit_button = xml.get_widget("enableAuditButton") ++ self.enable_audit_button.connect("clicked", self.enable_audit) ++ self.disable_audit_button = xml.get_widget("disableAuditButton") ++ self.disable_audit_button.connect("clicked", self.disable_audit) + col.set_sort_column_id(1) + col.set_resizable(True) + self.view.append_column(col) + self.store.set_sort_func(1,self.sort_int, "") ++ status, self.policy_type = selinux.selinux_getpolicytype() + + self.load() + @@ -771,6 +777,24 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + except ValueError, e: + self.error(e.args[0]) + ++ def enable_audit(self, button): ++ try: ++ status, output =commands.getstatusoutput("semodule -b /usr/share/selinux/%s/enableaudit.pp" % self.policy_type) ++ if status != 0: ++ self.error(output) ++ ++ except ValueError, e: ++ self.error(e.args[0]) ++ ++ def disable_audit(self, button): ++ try: ++ status, output =commands.getstatusoutput("semodule -b /usr/share/selinux/%s/base.pp" % self.policy_type) ++ if status != 0: ++ self.error(output) ++ ++ except ValueError, e: ++ self.error(e.args[0]) ++ + def addDialog(self): + dialog = gtk.FileChooserDialog(_("Load Policy Module"), + None, @@ -806,8 +830,8 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/gui/portsPage.py policycoreutils-1.33.1/gui/portsPage.py --- nsapolicycoreutils/gui/portsPage.py 1969-12-31 19:00:00.000000000 -0500 -+++ policycoreutils-1.33.1/gui/portsPage.py 2006-11-14 09:54:05.000000000 -0500 -@@ -0,0 +1,170 @@ ++++ policycoreutils-1.33.1/gui/portsPage.py 2006-11-15 13:21:49.000000000 -0500 +@@ -0,0 +1,210 @@ +## portsPage.py - show selinux mappings +## Copyright (C) 2006 Red Hat, Inc. + @@ -843,6 +867,10 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic +import gettext +gettext.bindtextdomain(PROGNAME, "/usr/share/locale") +gettext.textdomain(PROGNAME) ++TYPE_COL=0 ++PROTOCOL_COL=1 ++MLS_COL=2 ++PORT_COL=3 +try: + gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1) +except IOError: @@ -852,43 +880,63 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic +class portsPage(semanagePage): + def __init__(self, xml): + semanagePage.__init__(self, xml, "ports", "Network Port") ++ self.ports_name_entry = xml.get_widget("portsNameEntry") ++ self.ports_protocol_combo = xml.get_widget("portsProtocolCombo") ++ self.ports_number_entry = xml.get_widget("portsNumberEntry") ++ self.ports_mls_entry = xml.get_widget("portsMLSEntry") ++ self.ports_add_button = xml.get_widget("portsAddButton") ++ self.ports_properties_button = xml.get_widget("portsPropertiesButton") ++ self.ports_delete_button = xml.get_widget("portsDeleteButton") ++ self.ports_group_togglebutton = xml.get_widget("portsGroupTogglebutton") ++ self.ports_group_togglebutton.connect("toggled", self.group_toggle) ++ liststore = self.ports_protocol_combo.get_model() ++ iter = liststore.get_iter_first() ++ self.ports_protocol_combo.set_active_iter(iter) ++ self.init_store() ++ self.load() ++ ++ def init_store(self): + self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING , gobject.TYPE_STRING) + self.view.set_model(self.store) + self.store.set_sort_column_id(0, gtk.SORT_ASCENDING) -+ col = gtk.TreeViewColumn(_("SELinux Port\nType"), gtk.CellRendererText(), text = 0) -+ col.set_sort_column_id(0) ++ ++ col = gtk.TreeViewColumn(_("SELinux Port\nType"), gtk.CellRendererText(), text = TYPE_COL) ++ col.set_sort_column_id(TYPE_COL) + col.set_resizable(True) + self.view.append_column(col) -+ self.store.set_sort_column_id(0, gtk.SORT_ASCENDING) -+ col = gtk.TreeViewColumn(_("Port"), gtk.CellRendererText(), text = 1) -+ col.set_sort_column_id(1) ++ self.store.set_sort_column_id(TYPE_COL, gtk.SORT_ASCENDING) ++ ++ col = gtk.TreeViewColumn(_("Protocol"), gtk.CellRendererText(), text = PROTOCOL_COL) ++ col.set_sort_column_id(PROTOCOL_COL) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ ++ self.mls_col = gtk.TreeViewColumn(_("MLS/MCS\nLevel"), gtk.CellRendererText(), text = MLS_COL) ++ self.mls_col.set_resizable(True) ++ self.mls_col.set_sort_column_id(MLS_COL) ++ self.view.append_column(self.mls_col) ++ ++ col = gtk.TreeViewColumn(_("Port"), gtk.CellRendererText(), text = PORT_COL) ++ col.set_sort_column_id(PORT_COL) + col.set_resizable(True) + self.view.append_column(col) + self.store.set_sort_func(1,self.sort_int, "") + -+ col = gtk.TreeViewColumn(_("Protocol"), gtk.CellRendererText(), text = 2) -+ col.set_sort_column_id(2) -+ col.set_resizable(True) -+ self.view.append_column(col) -+ -+ col = gtk.TreeViewColumn(_("MLS/MCS\nLevel"), gtk.CellRendererText(), text = 3) -+ col.set_resizable(True) -+ col.set_sort_column_id(3) -+ self.view.append_column(col) -+ -+ self.load() -+ self.portsNameEntry = xml.get_widget("portsNameEntry") -+ self.portsProtocolCombo = xml.get_widget("portsProtocolCombo") -+ self.portsNumberEntry = xml.get_widget("portsNumberEntry") -+ self.portsMLSEntry = xml.get_widget("portsMLSEntry") -+ liststore = self.portsProtocolCombo.get_model() -+ iter = liststore.get_iter_first() -+ self.portsProtocolCombo.set_active_iter(iter) -+ ++ def group_toggle(self, button): ++ on=not button.get_active() ++ self.ports_add_button.set_sensitive(on) ++ self.ports_properties_button.set_sensitive(on) ++ self.ports_delete_button.set_sensitive(on) ++ self.mls_col.set_visible(on) ++ if on: ++ self.load() ++ else: ++ self.group_load() ++ + def sort_int(self, treemodel, iter1, iter2, user_data): + try: -+ p1 = int(treemodel.get_value(iter1,1)) -+ p2 = int(treemodel.get_value(iter1,1)) ++ p1 = int(treemodel.get_value(iter1,2)) ++ p2 = int(treemodel.get_value(iter1,2)) + if p1 > p2: + return 1 + if p1 == p2: @@ -906,41 +954,56 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + for k in keys: + iter = self.store.append() + if k[0] == k[1]: -+ self.store.set_value(iter, 1, k[0]) ++ self.store.set_value(iter, PORT_COL, k[0]) + else: + rec = "%s-%s" % k -+ self.store.set_value(iter, 1, rec) -+ self.store.set_value(iter, 0, dict[k][0]) -+ self.store.set_value(iter, 2, dict[k][1]) -+ self.store.set_value(iter, 3, dict[k][2]) ++ self.store.set_value(iter, PORT_COL, rec) ++ self.store.set_value(iter, TYPE_COL, dict[k][0]) ++ self.store.set_value(iter, PROTOCOL_COL, dict[k][1]) ++ self.store.set_value(iter, MLS_COL, dict[k][2]) ++ self.view.get_selection().select_path ((0,)) ++ ++ def group_load(self): ++ self.port = seobject.portRecords() ++ dict = self.port.get_all_by_type() ++ keys = dict.keys() ++ keys.sort() ++ self.store.clear() ++ print dir(self.store) ++ for k in keys: ++ iter = self.store.append() ++ self.store.set_value(iter, TYPE_COL, k[0]) ++ self.store.set_value(iter, PROTOCOL_COL, k[1]) ++ self.store.set_value(iter, PORT_COL, ", ".join(dict[k])) ++ self.store.set_value(iter, MLS_COL, "") + self.view.get_selection().select_path ((0,)) + + def dialogInit(self): + store, iter = self.view.get_selection().get_selected() -+ self.portsNumberEntry.set_text(store.get_value(iter, 1)) -+ self.portsNumberEntry.set_sensitive(False) -+ self.portsProtocolCombo.set_sensitive(False) -+ self.portsNameEntry.set_text(store.get_value(iter, 0)) -+ self.portsMLSEntry.set_text(store.get_value(iter, 3)) -+ protocol=store.get_value(iter, 2) -+ liststore=self.portsProtocolCombo.get_model() ++ self.ports_number_entry.set_text(store.get_value(iter, PORTS_COL)) ++ self.ports_number_entry.set_sensitive(False) ++ self.ports_protocol_combo.set_sensitive(False) ++ self.ports_name_entry.set_text(store.get_value(iter, TYPE_COL)) ++ self.ports_mls_entry.set_text(store.get_value(iter, MLS_COL)) ++ protocol=store.get_value(iter, PROTOCOL_COL) ++ liststore=self.ports_protocol_combo.get_model() + iter = liststore.get_iter_first() + while iter != None and liststore.get_value(iter,0) != protocol: + iter = liststore.iter_next(iter) + if iter != None: -+ self.portsProtocolCombo.set_active_iter(iter) ++ self.ports_protocol_combo.set_active_iter(iter) + + def dialogClear(self): -+ self.portsNumberEntry.set_text("") -+ self.portsNumberEntry.set_sensitive(True) -+ self.portsProtocolCombo.set_sensitive(True) -+ self.portsNameEntry.set_text("") -+ self.portsMLSEntry.set_text("s0") ++ self.ports_number_entry.set_text("") ++ self.ports_number_entry.set_sensitive(True) ++ self.ports_protocol_combo.set_sensitive(True) ++ self.ports_name_entry.set_text("") ++ self.ports_mls_entry.set_text("s0") + + def delete(self): + store, iter = self.view.get_selection().get_selected() -+ port = store.get_value(iter, 1) -+ protocol = store.get_value(iter, 2) ++ port = store.get_value(iter, PORT_COL) ++ protocol = store.get_value(iter, 1) + try: + self.port.delete(port, protocol) + store.remove(iter) @@ -949,34 +1012,35 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + self.error(e.args[0]) + + def add(self): -+ target = self.portsNameEntry.get_text().strip() -+ mls = self.portsMLSEntry.get_text().strip() -+ port_number = self.portsNumberEntry.get_text().strip() ++ target = self.ports_name_entry.get_text().strip() ++ mls = self.ports_mls_entry.get_text().strip() ++ port_number = self.ports_number_entry.get_text().strip() + if port_number == "": + port_number = "1" -+ list_model = self.portsProtocolCombo.get_model() -+ iter = self.portsProtocolCombo.get_active_iter() ++ list_model = self.ports_protocol_combo.get_model() ++ iter = self.ports_protocol_combo.get_active_iter() + protocol = list_model.get_value(iter,0) + self.port.add(port_number, protocol, mls, target) + iter = self.store.append() -+ self.store.set_value(iter, 0, target) -+ self.store.set_value(iter, 1, port_number) -+ self.store.set_value(iter, 2, protocol) -+ self.store.set_value(iter, 3, mls) ++ self.store.set_value(iter, TYPE_COL, target) ++ self.store.set_value(iter, PORT_COL, port_number) ++ self.store.set_value(iter, PROTOCOL_COL, protocol) ++ self.store.set_value(iter, MLS_COL, mls) + + def modify(self): -+ target = self.portsNameEntry.get_text().strip() -+ mls = self.portsMLSEntry.get_text().strip() -+ port_number = self.portsNumberEntry.get_text().strip() -+ list_model = self.portsProtocolCombo.get_model() -+ iter = self.portsProtocolCombo.get_active_iter() ++ target = self.ports_name_entry.get_text().strip() ++ mls = self.ports_mls_entry.get_text().strip() ++ port_number = self.ports_number_entry.get_text().strip() ++ list_model = self.ports_protocol_combo.get_model() ++ iter = self.ports_protocol_combo.get_active_iter() + protocol = list_model.get_value(iter,0) + self.port.modify(port_number, protocol, mls, target) + store, iter = self.view.get_selection().get_selected() -+ self.store.set_value(iter, 0, target) -+ self.store.set_value(iter, 1, port_number) -+ self.store.set_value(iter, 2, protocol) -+ self.store.set_value(iter, 3, mls) ++ self.store.set_value(iter, TYPE_COL, target) ++ self.store.set_value(iter, PORT_COL, port_number) ++ self.store.set_value(iter, PROTOCOL_COL, protocol) ++ self.store.set_value(iter, MLS_COL, mls) ++ + diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/gui/semanagePage.py policycoreutils-1.33.1/gui/semanagePage.py --- nsapolicycoreutils/gui/semanagePage.py 1969-12-31 19:00:00.000000000 -0500 @@ -1322,8 +1386,8 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/gui/system-config-selinux.glade policycoreutils-1.33.1/gui/system-config-selinux.glade --- nsapolicycoreutils/gui/system-config-selinux.glade 1969-12-31 19:00:00.000000000 -0500 -+++ policycoreutils-1.33.1/gui/system-config-selinux.glade 2006-11-15 08:06:56.000000000 -0500 -@@ -0,0 +1,2616 @@ ++++ policycoreutils-1.33.1/gui/system-config-selinux.glade 2006-11-15 13:20:19.000000000 -0500 +@@ -0,0 +1,2784 @@ + + + @@ -2800,6 +2864,7 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + True ++ Select Managment Object + True + False + False @@ -2845,7 +2910,8 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + True -+ False ++ True ++ True + False + GTK_POS_TOP + False @@ -3175,7 +3241,7 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + True -+ New File ++ Add File Context + gtk-add + True + True @@ -3191,7 +3257,7 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + True -+ Open File ++ Modify File Context + gtk-properties + True + True @@ -3207,7 +3273,7 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + True -+ Save File ++ Delete File Context + gtk-delete + True + True @@ -3303,7 +3369,7 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + True -+ New File ++ Add SELinux User Mapping + gtk-add + True + True @@ -3317,14 +3383,14 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + -+ ++ + True -+ Open File ++ Modify SELinux User Mapping + gtk-properties + True + True + False -+ ++ + + + False @@ -3335,7 +3401,7 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + True -+ Save File ++ Delete SELinux User Mapping + gtk-delete + True + True @@ -3431,7 +3497,7 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + True -+ New File ++ Add Translation + gtk-add + True + True @@ -3447,7 +3513,7 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + True -+ Open File ++ Modify Translation + gtk-properties + True + True @@ -3463,7 +3529,7 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + True -+ Save File ++ Delete Translation + gtk-delete + True + True @@ -3559,7 +3625,7 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + True -+ New File ++ Add SELinux User + gtk-add + True + True @@ -3575,7 +3641,7 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + True -+ Open File ++ Modify SELinux User + gtk-properties + True + True @@ -3591,7 +3657,7 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + True -+ Save File ++ Add SELinux User + gtk-delete + True + True @@ -3681,13 +3747,13 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + True + GTK_ORIENTATION_HORIZONTAL + GTK_TOOLBAR_BOTH -+ True ++ False + True + + -+ ++ + True -+ New File ++ Add Network Port + gtk-add + True + True @@ -3701,9 +3767,9 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + -+ ++ + True -+ Open File ++ Edit Network Port + gtk-properties + True + True @@ -3717,9 +3783,9 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + -+ ++ + True -+ Save File ++ Delete Network Port + gtk-delete + True + True @@ -3731,6 +3797,116 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + True + + ++ ++ ++ ++ True ++ True ++ True ++ False ++ ++ ++ ++ 32 ++ True ++ ++ ++ ++ ++ False ++ False ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ False ++ ++ ++ ++ True ++ Group/ungroup network ports by SELinux type. ++ True ++ GTK_RELIEF_NORMAL ++ True ++ False ++ False ++ ++ ++ ++ ++ True ++ 0.5 ++ 0.5 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ ++ ++ ++ True ++ False ++ 2 ++ ++ ++ ++ True ++ gtk-indent ++ 4 ++ 0.5 ++ 0.5 ++ 0 ++ 0 ++ ++ ++ 0 ++ False ++ False ++ ++ ++ ++ ++ ++ True ++ Group View ++ True ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0.5 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ False ++ False ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ False ++ False ++ ++ + + + 0 @@ -3815,7 +3991,7 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + True -+ New File ++ Load policy module + gtk-add + True + True @@ -3831,7 +4007,7 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + + + True -+ Save File ++ Remove loadable policy module + gtk-remove + True + True @@ -3843,6 +4019,62 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic + True + + ++ ++ ++ ++ True ++ True ++ True ++ False ++ ++ ++ ++ 10 ++ True ++ ++ ++ ++ ++ False ++ False ++ ++ ++ ++ ++ ++ True ++ Enable additional audit rules, that are normally not reported in the log files. ++ Enable Audit ++ True ++ gtk-zoom-in ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ Disable additional audit rules, that are normally not reported in the log files. ++ Disable Audit ++ True ++ gtk-zoom-out ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ + + + 0 @@ -4505,8 +4737,58 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic .TP diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/semanage/seobject.py policycoreutils-1.33.1/semanage/seobject.py --- nsapolicycoreutils/semanage/seobject.py 2006-10-17 12:04:55.000000000 -0400 -+++ policycoreutils-1.33.1/semanage/seobject.py 2006-11-14 09:54:05.000000000 -0500 -@@ -456,7 +456,8 @@ ++++ policycoreutils-1.33.1/semanage/seobject.py 2006-11-15 15:02:57.000000000 -0500 +@@ -94,23 +94,25 @@ + return re.search("^" + reg +"$",raw) + + def translate(raw, prepend = 1): +- if prepend == 1: +- context = "a:b:c:%s" % raw ++ filler="a:b:c:" ++ if prepend == 1: ++ context = "%s%s" % (filler,raw) + else: + context = raw +- (rc, trans) = selinux.selinux_raw_to_trans_context(context) ++ (rc, trans) = selinux.selinux_raw_to_trans_context(context) + if rc != 0: + return raw + if prepend: +- trans = trans.strip("a:b:c") ++ trans = trans[len(filler):] + if trans == "": + return raw + else: + return trans + + def untranslate(trans, prepend = 1): ++ filler="a:b:c:" + if prepend == 1: +- context = "a:b:c:%s" % trans ++ context = "%s%s" % (filler,trans) + else: + context = trans + +@@ -118,7 +120,7 @@ + if rc != 0: + return trans + if prepend: +- raw = raw.strip("a:b:c") ++ raw = raw[len(filler):] + if raw == "": + return trans + else: +@@ -204,7 +206,8 @@ + os.write(fd, self.out()) + os.close(fd) + os.rename(newfilename, self.filename) +- ++ os.system("/sbin/service mcstrans reload > /dev/null") ++ + class semanageRecords: + def __init__(self): + self.sh = semanage_handle_create() +@@ -456,7 +459,8 @@ rc = semanage_user_set_mlslevel(self.sh, u, selevel) if rc < 0: raise ValueError(_("Could not set MLS level for %s") % name) @@ -4516,7 +4798,7 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic rc = semanage_user_set_prefix(self.sh, u, prefix) if rc < 0: raise ValueError(_("Could not add prefix %s for %s") % (r, prefix)) -@@ -522,7 +523,9 @@ +@@ -522,7 +526,9 @@ semanage_user_set_mlslevel(self.sh, u, untranslate(selevel)) if prefix != "": diff --git a/policycoreutils.spec b/policycoreutils.spec index e10f38d..ee32e49 100644 --- a/policycoreutils.spec +++ b/policycoreutils.spec @@ -5,7 +5,7 @@ Summary: SELinux policy core utilities. Name: policycoreutils Version: 1.33.1 -Release: 3 +Release: 4 License: GPL Group: System Environment/Base Source: http://www.nsa.gov/selinux/archives/policycoreutils-%{version}.tgz @@ -168,6 +168,10 @@ fi [ -x /sbin/service ] && /sbin/service restorecond condrestart %changelog +* Wed Nov 15 2006 Dan Walsh 1.33.1-4 +- Add group sort for portsPage.py +- Add enable/disableaudit to modules page + * Wed Nov 15 2006 Dan Walsh 1.33.1-3 - Add glade file