On 10/21/2016 01:05 PM, Stephen Smalley wrote: > On 10/19/2016 08:36 AM, Vit Mojzis wrote: >> Return column definitions to portsPage (gui fails to load otherwise). >> >> fcontextPage: >> "ftype" dropdown was filled from 2 sources (system-config-selinux.glade >> and fcontextPage - from seobject module) which resulted in duplicate >> and invalid options. When given to "semanage fcontext -f", ftype has to be >> converted to 1 letter argument mode. >> >> TreeView.get_selection().get_selected() can return "None" if no item is selected >> (the list can be empty). Test if correct iterator was acquired. > > Thanks. However, I can't seem to get system-config-selinux built from > upstream to run before or after this patch: > $ system-config-selinux > Traceback (most recent call last): > File "/usr/share/system-config-selinux/system-config-selinux.py", line > 36, in <module> > import gnome > ImportError: No module named gnome > > Are there other changes in Fedora that are required? Never mind, found the dependency. Thanks, applied. I do still see this unrelated warning: /usr/share/system-config-selinux/system-config-selinux.py:80: Warning: g_object_get_valist: object class 'GnomeProgram' has no property named 'default-icon' xml = gtk.glade.XML("/usr/share/system-config-selinux/system-config-selinux.glade", domain=PROGNAME) > >> >> Fixes: >> https://bugzilla.redhat.com/show_bug.cgi?id=1344842 >> >> Signed-off-by: vmojzis <vmojzis@xxxxxxxxxx> >> --- >> policycoreutils/gui/fcontextPage.py | 17 +++++------------ >> policycoreutils/gui/portsPage.py | 6 ++++++ >> policycoreutils/gui/semanagePage.py | 4 ++-- >> policycoreutils/gui/system-config-selinux.glade | 2 +- >> 4 files changed, 14 insertions(+), 15 deletions(-) >> >> diff --git a/policycoreutils/gui/fcontextPage.py b/policycoreutils/gui/fcontextPage.py >> index c176de4..2e26666 100644 >> --- a/policycoreutils/gui/fcontextPage.py >> +++ b/policycoreutils/gui/fcontextPage.py >> @@ -105,13 +105,6 @@ class fcontextPage(semanagePage): >> self.load() >> self.fcontextEntry = xml.get_widget("fcontextEntry") >> self.fcontextFileTypeCombo = xml.get_widget("fcontextFileTypeCombo") >> - liststore = self.fcontextFileTypeCombo.get_model() >> - for k in seobject.file_types: >> - if len(k) > 0 and k[0] != '-': >> - iter = liststore.append() >> - liststore.set_value(iter, 0, k) >> - iter = liststore.get_iter_first() >> - self.fcontextFileTypeCombo.set_active_iter(iter) >> self.fcontextTypeEntry = xml.get_widget("fcontextTypeEntry") >> self.fcontextMLSEntry = xml.get_widget("fcontextMLSEntry") >> >> @@ -183,7 +176,7 @@ class fcontextPage(semanagePage): >> fspec = store.get_value(iter, SPEC_COL) >> ftype = store.get_value(iter, FTYPE_COL) >> self.wait() >> - (rc, out) = getstatusoutput("semanage fcontext -d -f '%s' '%s'" % (ftype, fspec)) >> + (rc, out) = getstatusoutput("semanage fcontext -d -f '%s' '%s'" % (seobject.file_type_str_to_option[ftype], fspec)) >> self.ready() >> >> if rc != 0: >> @@ -194,14 +187,14 @@ class fcontextPage(semanagePage): >> self.error(e.args[0]) >> >> def add(self): >> - ftype = ["", "--", "-d", "-c", "-b", "-s", "-l", "-p"] >> fspec = self.fcontextEntry.get_text().strip() >> type = self.fcontextTypeEntry.get_text().strip() >> mls = self.fcontextMLSEntry.get_text().strip() >> list_model = self.fcontextFileTypeCombo.get_model() >> - active = self.fcontextFileTypeCombo.get_active() >> + it = self.fcontextFileTypeCombo.get_active_iter() >> + ftype = list_model.get_value(it,0) >> self.wait() >> - (rc, out) = getstatusoutput("semanage fcontext -a -t %s -r %s -f '%s' '%s'" % (type, mls, ftype[active], fspec)) >> + (rc, out) = getstatusoutput("semanage fcontext -a -t %s -r %s -f '%s' '%s'" % (type, mls, seobject.file_type_str_to_option[ftype], fspec)) >> self.ready() >> if rc != 0: >> self.error(out) >> @@ -220,7 +213,7 @@ class fcontextPage(semanagePage): >> iter = self.fcontextFileTypeCombo.get_active_iter() >> ftype = list_model.get_value(iter, 0) >> self.wait() >> - (rc, out) = getstatusoutput("semanage fcontext -m -t %s -r %s -f '%s' '%s'" % (type, mls, ftype, fspec)) >> + (rc, out) = getstatusoutput("semanage fcontext -m -t %s -r %s -f '%s' '%s'" % (type, mls, seobject.file_type_str_to_option[ftype], fspec)) >> self.ready() >> if rc != 0: >> self.error(out) >> diff --git a/policycoreutils/gui/portsPage.py b/policycoreutils/gui/portsPage.py >> index b6445db..b8fdaad 100644 >> --- a/policycoreutils/gui/portsPage.py >> +++ b/policycoreutils/gui/portsPage.py >> @@ -23,6 +23,12 @@ import os >> import gobject >> import sys >> import seobject >> + >> +TYPE_COL = 0 >> +PROTOCOL_COL = 1 >> +MLS_COL = 2 >> +PORT_COL = 3 >> + >> try: >> from subprocess import getstatusoutput >> except ImportError: >> diff --git a/policycoreutils/gui/semanagePage.py b/policycoreutils/gui/semanagePage.py >> index 1f14d56..27367f3 100644 >> --- a/policycoreutils/gui/semanagePage.py >> +++ b/policycoreutils/gui/semanagePage.py >> @@ -130,8 +130,8 @@ class semanagePage: >> dlg.destroy() >> >> def deleteDialog(self): >> - store, iter = self.view.get_selection().get_selected() >> - if self.verify(_("Are you sure you want to delete %s '%s'?" % (self.description, store.get_value(iter, 0))), _("Delete %s" % self.description)) == gtk.RESPONSE_YES: >> + store, it = self.view.get_selection().get_selected() >> + if (it is not None) and (self.verify(_("Are you sure you want to delete %s '%s'?" % (self.description, store.get_value(it, 0))), _("Delete %s" % self.description)) == gtk.RESPONSE_YES): >> self.delete() >> >> def use_menus(self): >> diff --git a/policycoreutils/gui/system-config-selinux.glade b/policycoreutils/gui/system-config-selinux.glade >> index 05a697e..4547b3f 100644 >> --- a/policycoreutils/gui/system-config-selinux.glade >> +++ b/policycoreutils/gui/system-config-selinux.glade >> @@ -729,7 +729,7 @@ regular file >> directory >> character device >> block device >> -socket >> +socket file >> symbolic link >> named pipe >> </property> >> > > _______________________________________________ > Selinux mailing list > Selinux@xxxxxxxxxxxxx > To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx. > To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx. > _______________________________________________ Selinux mailing list Selinux@xxxxxxxxxxxxx To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx. To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.