rpms/policycoreutils/devel policycoreutils-gui.patch, NONE, 1.1 .cvsignore, 1.138, 1.139 policycoreutils-rhat.patch, 1.284, 1.285 policycoreutils.spec, 1.370, 1.371 sources, 1.143, 1.144
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Tue Feb 20 14:58:01 UTC 2007
Author: dwalsh
Update of /cvs/dist/rpms/policycoreutils/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv4298
Modified Files:
.cvsignore policycoreutils-rhat.patch policycoreutils.spec
sources
Added Files:
policycoreutils-gui.patch
Log Message:
* Tue Feb 20 2007 Dan Walsh <dwalsh at redhat.com> 2.0.2-1
- Update to upstream
* Merged seobject exception handler fix from Caleb Case.
* Merged setfiles memory leak patch from Todd Miller.
policycoreutils-gui.patch:
Makefile | 30
booleansPage.py | 199 +++
fcontextPage.py | 158 ++
loginsPage.py | 161 ++
mappingsPage.py | 54
modulesPage.py | 161 ++
portsPage.py | 214 +++
selinux.tbl | 265 ++++
semanagePage.py | 109 +
statusPage.py | 213 +++
system-config-selinux.glade | 2803 ++++++++++++++++++++++++++++++++++++++++++++
system-config-selinux.py | 156 ++
translationsPage.py | 109 +
usersPage.py | 155 ++
14 files changed, 4787 insertions(+)
--- NEW FILE policycoreutils-gui.patch ---
diff --exclude-from=exclude -N -u -r nsapolicycoreutils/gui/booleansPage.py policycoreutils-2.0.1/gui/booleansPage.py
--- nsapolicycoreutils/gui/booleansPage.py 1969-12-31 19:00:00.000000000 -0500
+++ policycoreutils-2.0.1/gui/booleansPage.py 2007-02-15 15:16:09.000000000 -0500
@@ -0,0 +1,199 @@
+#
+# booleansPage.py - GUI for Booleans page in system-config-securitylevel
+#
+# Brent Fox <bfox at redhat.com>
+# Dan Walsh <dwalsh at redhat.com>
+#
+# Copyright 2006 Red Hat, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+import string
+import gtk
+import gtk.glade
+import os
+import libxml2
+import gobject
+import sys
+import tempfile
+
+INSTALLPATH='/usr/share/system-config-selinux'
+sys.path.append(INSTALLPATH)
+
+from Conf import *
+import commands
+ENFORCING=0
+PERMISSIVE=1
+DISABLED=2
+
+##
+## I18N
+##
+PROGNAME="system-config-selinux"
+
+import gettext
+gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
+gettext.textdomain(PROGNAME)
+try:
+ gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1)
+except IOError:
+ import __builtin__
+ __builtin__.__dict__['_'] = unicode
+
+class Translation:
+ def __init__(self):
+ self.translation={}
+ fd=open(INSTALLPATH + "/selinux.tbl","r")
+ lines=fd.readlines()
+ fd.close()
+ for i in lines:
+ try:
+ line=i.strip().split("_(\"")
+ key=line[0].strip()
+ category=line[1].split("\"")[0]
+ value=line[2].split("\"")[0]
+ self.translation[key]=(category,value)
+ except:
+ continue
+
+ def get_category(self,key):
+ try:
+ return _(self.translation[key][0])
+ except:
+ return _("Other")
+
+ def get_value(self,key):
+ try:
+ return _(self.translation[key][1])
+ except:
+ return key
+
+class Modifier:
+ def __init__(self,name, on, save):
+ self.on=on
+ self.name=name
+ self.save=save
+
+ def set(self,value):
+ self.on=value
+ self.save=True
+
+ def isOn(self):
+ return self.on
+
+class Boolean(Modifier):
+ def __init__(self,name, val, save=False):
+ Modifier.__init__(self,name, val, save)
+
+class Modifiers:
+ def __init__(self,store):
+ self.modifiers={}
+ self.translation=Translation()
+ self.store=store
+ self.store.clear()
+
+ def add(self,name,val):
+ if name == "targeted_policy":
+ return
+ category=self.translation.get_category(name)
+ if not self.modifiers.has_key(category):
+ self.modifiers[category]={}
+ iter=self.store.append(None)
+ self.modifiers[category]["iter"] = iter
+ self.store.set_value(iter, 1, category)
+ self.store.set_value(iter, 3, False)
+
+ self.modifiers[category][name]=val;
+ iter=self.store.append(self.modifiers[category]["iter"])
+ self.store.set_value(iter, 0, val.isOn())
+ self.store.set_value(iter, 1, self.translation.get_value(name))
+ self.store.set_value(iter, 2, name)
+ self.store.set_value(iter, 3, True)
+
+ def set(self,name,val):
+ category=self.translation.get_category(name)
+ self.modifiers[category][name].set(val)
+
+ def isBoolean(self,name):
+ c=self.translation.get_category(name)
+ return isinstance(self.modifiers[c][name], Boolean)
+
+ def get_booleans(self):
+ booleans={}
+ for c in self.modifiers.keys():
+ for n in self.modifiers[c].keys():
+ if isinstance(self.modifiers[c][n], Boolean):
+ booleans[n]=self.modifiers[c][n]
+ return booleans
+
+class booleansPage:
+ def __init__(self, xml, doDebug=None):
+ self.xml = xml
+ self.types=[]
+ self.selinuxsupport = True
+ self.translation = Translation()
+ self.typechanged = False
+ self.doDebug = doDebug
+
+ # Bring in widgets from glade file.
+ self.typeHBox = xml.get_widget("typeHBox")
+ self.booleanSW = xml.get_widget("booleanSW")
+ self.booleansView = xml.get_widget("booleansView")
+ self.typeLabel = xml.get_widget("typeLabel")
+ self.modifySeparator = xml.get_widget("modifySeparator")
+
+ listStore = gtk.ListStore(gobject.TYPE_STRING)
+ cell = gtk.CellRendererText()
+
+ self.booleansStore = gtk.TreeStore(gobject.TYPE_BOOLEAN, gobject.TYPE_STRING, gobject.TYPE_PYOBJECT, gobject.TYPE_BOOLEAN)
+ self.booleansStore.set_sort_column_id(1, gtk.SORT_ASCENDING)
+ self.booleansView.set_model(self.booleansStore)
+
+ checkbox = gtk.CellRendererToggle()
+ checkbox.connect("toggled", self.boolean_toggled)
+ col = gtk.TreeViewColumn('', checkbox, active = 0,visible=3)
+ col.set_fixed_width(20)
+ col.set_clickable(True)
+ self.booleansView.append_column(col)
+
+ col = gtk.TreeViewColumn("", gtk.CellRendererText(), text=1)
+ self.booleansView.append_column(col)
+ self.refreshBooleans()
+
+ def get_description(self):
+ return _("Boolean")
+
+ def refreshBooleans(self):
+ self.modifiers=Modifiers(self.booleansStore)
+ booleansList=commands.getoutput("/usr/sbin/getsebool -a").split("\n")
+ for i in booleansList:
+ rec=i.split()
+ name=rec[0]
+ if rec[2]=="on" or rec[2]=="active":
+ on=1
+ else:
+ on=0
+ self.modifiers.add(name,Boolean(name,on))
+
+ def boolean_toggled(self, widget, row):
+ if len(row) == 1:
+ return
+ iter = self.booleansStore.get_iter(row)
+ val = self.booleansStore.get_value(iter, 0)
+ key = self.booleansStore.get_value(iter, 2)
+ self.booleansStore.set_value(iter, 0 , not val)
[...4444 lines suppressed...]
+ iter = self.store.append()
+ self.store.set_value(iter, 0, k)
+ self.store.set_value(iter, 1, dict[k])
+ self.view.get_selection().select_path ((0,))
+
+ def dialogInit(self):
+ store, iter = self.view.get_selection().get_selected()
+ self.translationsLevelEntry.set_text(store.get_value(iter, 0))
+ self.translationsLevelEntry.set_sensitive(False)
+ self.translationsEntry.set_text(store.get_value(iter, 1))
+
+ def dialogClear(self):
+ self.translationsLevelEntry.set_text("")
+ self.translationsLevelEntry.set_sensitive(True)
+ self.translationsEntry.set_text("")
+
+ def delete(self):
+ store, iter = self.view.get_selection().get_selected()
+ try:
+ level = store.get_value(iter, 0)
+ self.translation.delete(level)
+ store.remove(iter)
+ self.view.get_selection().select_path ((0,))
+ except ValueError, e:
+ self.error(e.args[0])
+
+ def add(self):
+ level = self.translationsLevelEntry.get_text().strip()
+ translation = self.translationsEntry.get_text().strip()
+ self.translation.add(level, translation)
+ iter = self.store.append()
+ self.store.set_value(iter, 0, level)
+ self.store.set_value(iter, 1, translation)
+
+ def modify(self):
+ level = self.translationsLevelEntry.get_text().strip()
+ translation = self.translationsEntry.get_text().strip()
+ self.translation.modify(level, translation)
+ store, iter = self.view.get_selection().get_selected()
+ self.store.set_value(iter, 0, level)
+ self.store.set_value(iter, 1, translation)
diff --exclude-from=exclude -N -u -r nsapolicycoreutils/gui/usersPage.py policycoreutils-2.0.1/gui/usersPage.py
--- nsapolicycoreutils/gui/usersPage.py 1969-12-31 19:00:00.000000000 -0500
+++ policycoreutils-2.0.1/gui/usersPage.py 2007-02-15 15:16:09.000000000 -0500
@@ -0,0 +1,155 @@
+## usersPage.py - show selinux mappings
+## Copyright (C) 2006 Red Hat, Inc.
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+## Author: Dan Walsh
+import string
+import gtk
+import gtk.glade
+import os
+import libxml2
+import gobject
+import sys
+import seobject
+from semanagePage import *;
+
+##
+## I18N
+##
+PROGNAME="policycoreutils"
+import gettext
+gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
+gettext.textdomain(PROGNAME)
+try:
+ gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1)
+except IOError:
+ import __builtin__
+ __builtin__.__dict__['_'] = unicode
+
+class usersPage(semanagePage):
+ def __init__(self, xml):
+ semanagePage.__init__(self, xml, "users", "SELinux User")
+ self.store = gtk.ListStore(gobject.TYPE_STRING, 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\nUser"), gtk.CellRendererText(), text = 0)
+ col.set_sort_column_id(0)
+ col.set_resizable(True)
+ self.view.append_column(col)
+
+ col = gtk.TreeViewColumn(_("Labeling\nPrefix"), gtk.CellRendererText(), text = 1)
+ col.set_resizable(True)
+ self.view.append_column(col)
+ col = gtk.TreeViewColumn(_("MLS/\nMCS Level"), gtk.CellRendererText(), text = 2)
+ col.set_resizable(True)
+ self.view.append_column(col)
+ col = gtk.TreeViewColumn(_("MLS/\nMCS Range"), gtk.CellRendererText(), text = 3)
+ col.set_resizable(True)
+ self.view.append_column(col)
+
+ col = gtk.TreeViewColumn(_("SELinux Roles"), gtk.CellRendererText(), text = 4)
+ col.set_resizable(True)
+ self.view.append_column(col)
+
+ self.load()
+ self.selinuxUserEntry = xml.get_widget("selinuxUserEntry")
+ self.labelPrefixEntry = xml.get_widget("labelPrefixEntry")
+ self.mlsLevelEntry = xml.get_widget("mlsLevelEntry")
+ self.mlsRangeEntry = xml.get_widget("mlsRangeEntry")
+ self.selinuxRolesEntry = xml.get_widget("selinuxRolesEntry")
+
+ def load(self):
+ self.user = seobject.seluserRecords()
+ dict = self.user.get_all()
+ keys = dict.keys()
+ keys.sort()
+ self.store.clear()
+ for k in keys:
+ iter = self.store.append()
+ self.store.set_value(iter, 0, k)
+ self.store.set_value(iter, 1, dict[k][0])
+ self.store.set_value(iter, 2, seobject.translate(dict[k][1]))
+ self.store.set_value(iter, 3, seobject.translate(dict[k][2]))
+ self.store.set_value(iter, 4, dict[k][3])
+ self.view.get_selection().select_path ((0,))
+
+ def delete(self):
+ if semanagePage.delete(self) == gtk.RESPONSE_NO:
+ return None
+
+ def dialogInit(self):
+ store, iter = self.view.get_selection().get_selected()
+ self.selinuxUserEntry.set_text(store.get_value(iter, 0))
+ self.selinuxUserEntry.set_sensitive(False)
+ self.labelPrefixEntry.set_text(store.get_value(iter, 1))
+ self.mlsLevelEntry.set_text(store.get_value(iter, 2))
+ self.mlsRangeEntry.set_text(store.get_value(iter, 3))
+ self.selinuxRolesEntry.set_text(store.get_value(iter, 4))
+ protocol=store.get_value(iter, 2)
+
+ def dialogClear(self):
+ self.selinuxUserEntry.set_text("")
+ self.selinuxUserEntry.set_sensitive(True)
+ self.labelPrefixEntry.set_text("")
+ self.mlsLevelEntry.set_text("s0")
+ self.mlsRangeEntry.set_text("s0")
+ self.selinuxRolesEntry.set_text("")
+
+ def add(self):
+ user = self.selinuxUserEntry.get_text()
+ prefix = self.labelPrefixEntry.get_text()
+ level = self.mlsLevelEntry.get_text()
+ range = self.mlsRangeEntry.get_text()
+ roles = self.selinuxRolesEntry.get_text()
+
+ self.user.add(user, roles.split(), level, range, prefix)
+ iter = self.store.append()
+ self.store.set_value(iter, 0, user)
+ self.store.set_value(iter, 1, prefix)
+ self.store.set_value(iter, 2, level)
+ self.store.set_value(iter, 3, range)
+ self.store.set_value(iter, 4, roles)
+
+ def modify(self):
+ user = self.selinuxUserEntry.get_text()
+ prefix = self.labelPrefixEntry.get_text()
+ level = self.mlsLevelEntry.get_text()
+ range = self.mlsRangeEntry.get_text()
+ roles = self.selinuxRolesEntry.get_text()
+
+ self.user.modify(user, roles.split(), level, range, prefix)
+ store, iter = self.view.get_selection().get_selected()
+ iter = self.store.append()
+ self.store.set_value(iter, 0, user)
+ self.store.set_value(iter, 1, prefix)
+ self.store.set_value(iter, 2, level)
+ self.store.set_value(iter, 3, range)
+ self.store.set_value(iter, 4, roles)
+
+ def delete(self):
+ store, iter = self.view.get_selection().get_selected()
+ try:
+ user=store.get_value(iter, 0)
+ if user == "root" or user == "user_u":
+ raise ValueError(_("SELinux user '%s' is required") % user)
+
+ self.user.delete(user)
+ store.remove(iter)
+ self.view.get_selection().select_path ((0,))
+ except ValueError, e:
+ self.error(e.args[0])
+
Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/policycoreutils/devel/.cvsignore,v
retrieving revision 1.138
retrieving revision 1.139
diff -u -r1.138 -r1.139
--- .cvsignore 15 Feb 2007 20:27:16 -0000 1.138
+++ .cvsignore 20 Feb 2007 14:57:59 -0000 1.139
@@ -132,3 +132,4 @@
policycoreutils-2.0.0.tgz
policycoreutils-2.0.1.tgz
sepolgen-1.0.0.tgz
+policycoreutils-2.0.2.tgz
policycoreutils-rhat.patch:
Makefile | 2 -
newrole/newrole.c | 8 +++---
restorecond/restorecond.c | 12 +++++----
restorecond/restorecond.conf | 2 +
scripts/chcat | 55 +++++++++++++++++++++++++++++++++++--------
scripts/chcat.8 | 19 +++++++-------
scripts/fixfiles.8 | 2 -
semanage/seobject.py | 12 ++++++---
8 files changed, 78 insertions(+), 34 deletions(-)
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.284 -r 1.285 policycoreutils-rhat.patch
Index: policycoreutils-rhat.patch
===================================================================
RCS file: /cvs/dist/rpms/policycoreutils/devel/policycoreutils-rhat.patch,v
retrieving revision 1.284
retrieving revision 1.285
diff -u -r1.284 -r1.285
--- policycoreutils-rhat.patch 15 Feb 2007 20:27:16 -0000 1.284
+++ policycoreutils-rhat.patch 20 Feb 2007 14:57:59 -0000 1.285
@@ -1,4858 +1,15 @@
-diff --exclude-from=exclude --exclude=sepolgen-1.0.0 --exclude=po -N -u -r nsapolicycoreutils/gui/booleansPage.py policycoreutils-2.0.1/gui/booleansPage.py
---- nsapolicycoreutils/gui/booleansPage.py 1969-12-31 19:00:00.000000000 -0500
-+++ policycoreutils-2.0.1/gui/booleansPage.py 2007-02-15 15:01:06.000000000 -0500
-@@ -0,0 +1,199 @@
-+#
-+# booleansPage.py - GUI for Booleans page in system-config-securitylevel
-+#
-+# Brent Fox <bfox at redhat.com>
-+# Dan Walsh <dwalsh at redhat.com>
-+#
-+# Copyright 2006 Red Hat, Inc.
-+#
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+#
-+import string
-+import gtk
-+import gtk.glade
-+import os
-+import libxml2
-+import gobject
-+import sys
-+import tempfile
-+
-+INSTALLPATH='/usr/share/system-config-selinux'
-+sys.path.append(INSTALLPATH)
-+
-+from Conf import *
-+import commands
-+ENFORCING=0
-+PERMISSIVE=1
-+DISABLED=2
-+
-+##
-+## I18N
-+##
-+PROGNAME="system-config-selinux"
-+
-+import gettext
-+gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
-+gettext.textdomain(PROGNAME)
-+try:
-+ gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1)
-+except IOError:
-+ import __builtin__
-+ __builtin__.__dict__['_'] = unicode
-+
-+class Translation:
-+ def __init__(self):
-+ self.translation={}
-+ fd=open(INSTALLPATH + "/selinux.tbl","r")
-+ lines=fd.readlines()
-+ fd.close()
-+ for i in lines:
-+ try:
-+ line=i.strip().split("_(\"")
-+ key=line[0].strip()
-+ category=line[1].split("\"")[0]
-+ value=line[2].split("\"")[0]
-+ self.translation[key]=(category,value)
-+ except:
-+ continue
-+
-+ def get_category(self,key):
-+ try:
-+ return _(self.translation[key][0])
-+ except:
-+ return _("Other")
-+
-+ def get_value(self,key):
-+ try:
-+ return _(self.translation[key][1])
-+ except:
-+ return key
-+
-+class Modifier:
-+ def __init__(self,name, on, save):
-+ self.on=on
-+ self.name=name
-+ self.save=save
-+
-+ def set(self,value):
-+ self.on=value
-+ self.save=True
-+
-+ def isOn(self):
-+ return self.on
-+
-+class Boolean(Modifier):
-+ def __init__(self,name, val, save=False):
-+ Modifier.__init__(self,name, val, save)
-+
-+class Modifiers:
-+ def __init__(self,store):
-+ self.modifiers={}
-+ self.translation=Translation()
-+ self.store=store
-+ self.store.clear()
-+
-+ def add(self,name,val):
-+ if name == "targeted_policy":
-+ return
-+ category=self.translation.get_category(name)
-+ if not self.modifiers.has_key(category):
-+ self.modifiers[category]={}
-+ iter=self.store.append(None)
-+ self.modifiers[category]["iter"] = iter
-+ self.store.set_value(iter, 1, category)
-+ self.store.set_value(iter, 3, False)
-+
-+ self.modifiers[category][name]=val;
-+ iter=self.store.append(self.modifiers[category]["iter"])
-+ self.store.set_value(iter, 0, val.isOn())
-+ self.store.set_value(iter, 1, self.translation.get_value(name))
-+ self.store.set_value(iter, 2, name)
-+ self.store.set_value(iter, 3, True)
-+
-+ def set(self,name,val):
-+ category=self.translation.get_category(name)
-+ self.modifiers[category][name].set(val)
-+
-+ def isBoolean(self,name):
-+ c=self.translation.get_category(name)
-+ return isinstance(self.modifiers[c][name], Boolean)
-+
-+ def get_booleans(self):
-+ booleans={}
-+ for c in self.modifiers.keys():
-+ for n in self.modifiers[c].keys():
-+ if isinstance(self.modifiers[c][n], Boolean):
-+ booleans[n]=self.modifiers[c][n]
-+ return booleans
-+
-+class booleansPage:
-+ def __init__(self, xml, doDebug=None):
-+ self.xml = xml
-+ self.types=[]
-+ self.selinuxsupport = True
-+ self.translation = Translation()
-+ self.typechanged = False
-+ self.doDebug = doDebug
-+
-+ # Bring in widgets from glade file.
-+ self.typeHBox = xml.get_widget("typeHBox")
-+ self.booleanSW = xml.get_widget("booleanSW")
-+ self.booleansView = xml.get_widget("booleansView")
-+ self.typeLabel = xml.get_widget("typeLabel")
-+ self.modifySeparator = xml.get_widget("modifySeparator")
-+
-+ listStore = gtk.ListStore(gobject.TYPE_STRING)
-+ cell = gtk.CellRendererText()
-+
-+ self.booleansStore = gtk.TreeStore(gobject.TYPE_BOOLEAN, gobject.TYPE_STRING, gobject.TYPE_PYOBJECT, gobject.TYPE_BOOLEAN)
-+ self.booleansStore.set_sort_column_id(1, gtk.SORT_ASCENDING)
-+ self.booleansView.set_model(self.booleansStore)
-+
-+ checkbox = gtk.CellRendererToggle()
-+ checkbox.connect("toggled", self.boolean_toggled)
-+ col = gtk.TreeViewColumn('', checkbox, active = 0,visible=3)
-+ col.set_fixed_width(20)
-+ col.set_clickable(True)
-+ self.booleansView.append_column(col)
-+
-+ col = gtk.TreeViewColumn("", gtk.CellRendererText(), text=1)
-+ self.booleansView.append_column(col)
-+ self.refreshBooleans()
-+
-+ def get_description(self):
-+ return _("Boolean")
-+
-+ def refreshBooleans(self):
-+ self.modifiers=Modifiers(self.booleansStore)
-+ booleansList=commands.getoutput("/usr/sbin/getsebool -a").split("\n")
-+ for i in booleansList:
-+ rec=i.split()
-+ name=rec[0]
-+ if rec[2]=="on" or rec[2]=="active":
-+ on=1
-+ else:
-+ on=0
-+ self.modifiers.add(name,Boolean(name,on))
[...4553 lines suppressed...]
-+ col = gtk.TreeViewColumn(_("MLS/\nMCS Level"), gtk.CellRendererText(), text = 2)
-+ col.set_resizable(True)
-+ self.view.append_column(col)
-+ col = gtk.TreeViewColumn(_("MLS/\nMCS Range"), gtk.CellRendererText(), text = 3)
-+ col.set_resizable(True)
-+ self.view.append_column(col)
-+
-+ col = gtk.TreeViewColumn(_("SELinux Roles"), gtk.CellRendererText(), text = 4)
-+ col.set_resizable(True)
-+ self.view.append_column(col)
-+
-+ self.load()
-+ self.selinuxUserEntry = xml.get_widget("selinuxUserEntry")
-+ self.labelPrefixEntry = xml.get_widget("labelPrefixEntry")
-+ self.mlsLevelEntry = xml.get_widget("mlsLevelEntry")
-+ self.mlsRangeEntry = xml.get_widget("mlsRangeEntry")
-+ self.selinuxRolesEntry = xml.get_widget("selinuxRolesEntry")
-+
-+ def load(self):
-+ self.user = seobject.seluserRecords()
-+ dict = self.user.get_all()
-+ keys = dict.keys()
-+ keys.sort()
-+ self.store.clear()
-+ for k in keys:
-+ iter = self.store.append()
-+ self.store.set_value(iter, 0, k)
-+ self.store.set_value(iter, 1, dict[k][0])
-+ self.store.set_value(iter, 2, seobject.translate(dict[k][1]))
-+ self.store.set_value(iter, 3, seobject.translate(dict[k][2]))
-+ self.store.set_value(iter, 4, dict[k][3])
-+ self.view.get_selection().select_path ((0,))
-+
-+ def delete(self):
-+ if semanagePage.delete(self) == gtk.RESPONSE_NO:
-+ return None
-+
-+ def dialogInit(self):
-+ store, iter = self.view.get_selection().get_selected()
-+ self.selinuxUserEntry.set_text(store.get_value(iter, 0))
-+ self.selinuxUserEntry.set_sensitive(False)
-+ self.labelPrefixEntry.set_text(store.get_value(iter, 1))
-+ self.mlsLevelEntry.set_text(store.get_value(iter, 2))
-+ self.mlsRangeEntry.set_text(store.get_value(iter, 3))
-+ self.selinuxRolesEntry.set_text(store.get_value(iter, 4))
-+ protocol=store.get_value(iter, 2)
-+
-+ def dialogClear(self):
-+ self.selinuxUserEntry.set_text("")
-+ self.selinuxUserEntry.set_sensitive(True)
-+ self.labelPrefixEntry.set_text("")
-+ self.mlsLevelEntry.set_text("s0")
-+ self.mlsRangeEntry.set_text("s0")
-+ self.selinuxRolesEntry.set_text("")
-+
-+ def add(self):
-+ user = self.selinuxUserEntry.get_text()
-+ prefix = self.labelPrefixEntry.get_text()
-+ level = self.mlsLevelEntry.get_text()
-+ range = self.mlsRangeEntry.get_text()
-+ roles = self.selinuxRolesEntry.get_text()
-+
-+ self.user.add(user, roles.split(), level, range, prefix)
-+ iter = self.store.append()
-+ self.store.set_value(iter, 0, user)
-+ self.store.set_value(iter, 1, prefix)
-+ self.store.set_value(iter, 2, level)
-+ self.store.set_value(iter, 3, range)
-+ self.store.set_value(iter, 4, roles)
-+
-+ def modify(self):
-+ user = self.selinuxUserEntry.get_text()
-+ prefix = self.labelPrefixEntry.get_text()
-+ level = self.mlsLevelEntry.get_text()
-+ range = self.mlsRangeEntry.get_text()
-+ roles = self.selinuxRolesEntry.get_text()
-+
-+ self.user.modify(user, roles.split(), level, range, prefix)
-+ store, iter = self.view.get_selection().get_selected()
-+ iter = self.store.append()
-+ self.store.set_value(iter, 0, user)
-+ self.store.set_value(iter, 1, prefix)
-+ self.store.set_value(iter, 2, level)
-+ self.store.set_value(iter, 3, range)
-+ self.store.set_value(iter, 4, roles)
-+
-+ def delete(self):
-+ store, iter = self.view.get_selection().get_selected()
-+ try:
-+ user=store.get_value(iter, 0)
-+ if user == "root" or user == "user_u":
-+ raise ValueError(_("SELinux user '%s' is required") % user)
-+
-+ self.user.delete(user)
-+ store.remove(iter)
-+ self.view.get_selection().select_path ((0,))
-+ except ValueError, e:
-+ self.error(e.args[0])
-+
-diff --exclude-from=exclude --exclude=sepolgen-1.0.0 --exclude=po -N -u -r nsapolicycoreutils/Makefile policycoreutils-2.0.1/Makefile
+diff --exclude-from=exclude --exclude=sepolgen-1.0.0 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/Makefile policycoreutils-2.0.1/Makefile
--- nsapolicycoreutils/Makefile 2006-11-16 17:15:00.000000000 -0500
-+++ policycoreutils-2.0.1/Makefile 2007-02-15 15:01:06.000000000 -0500
++++ policycoreutils-2.0.1/Makefile 2007-02-15 15:16:09.000000000 -0500
@@ -1,4 +1,4 @@
-SUBDIRS=setfiles semanage load_policy newrole run_init restorecon restorecond secon audit2allow audit2why scripts sestatus semodule_package semodule semodule_link semodule_expand semodule_deps setsebool po
+SUBDIRS=setfiles semanage load_policy newrole run_init restorecon restorecond secon audit2allow audit2why scripts sestatus semodule_package semodule semodule_link semodule_expand semodule_deps setsebool po gui
all install relabel clean indent:
@for subdir in $(SUBDIRS); do \
-diff --exclude-from=exclude --exclude=sepolgen-1.0.0 --exclude=po -N -u -r nsapolicycoreutils/newrole/newrole.c policycoreutils-2.0.1/newrole/newrole.c
+diff --exclude-from=exclude --exclude=sepolgen-1.0.0 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/newrole/newrole.c policycoreutils-2.0.1/newrole/newrole.c
--- nsapolicycoreutils/newrole/newrole.c 2007-01-24 10:03:59.000000000 -0500
-+++ policycoreutils-2.0.1/newrole/newrole.c 2007-02-15 15:01:06.000000000 -0500
++++ policycoreutils-2.0.1/newrole/newrole.c 2007-02-15 15:16:09.000000000 -0500
@@ -640,7 +640,7 @@
}
@@ -4879,9 +36,9 @@
if (fd != 2)
goto err_close_pam;
-diff --exclude-from=exclude --exclude=sepolgen-1.0.0 --exclude=po -N -u -r nsapolicycoreutils/restorecond/restorecond.c policycoreutils-2.0.1/restorecond/restorecond.c
+diff --exclude-from=exclude --exclude=sepolgen-1.0.0 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/restorecond/restorecond.c policycoreutils-2.0.1/restorecond/restorecond.c
--- nsapolicycoreutils/restorecond/restorecond.c 2006-11-16 17:14:28.000000000 -0500
-+++ policycoreutils-2.0.1/restorecond/restorecond.c 2007-02-15 15:01:06.000000000 -0500
++++ policycoreutils-2.0.1/restorecond/restorecond.c 2007-02-15 15:16:09.000000000 -0500
@@ -210,9 +210,10 @@
}
@@ -4908,9 +65,9 @@
}
free(scontext);
close(fd);
-diff --exclude-from=exclude --exclude=sepolgen-1.0.0 --exclude=po -N -u -r nsapolicycoreutils/restorecond/restorecond.conf policycoreutils-2.0.1/restorecond/restorecond.conf
+diff --exclude-from=exclude --exclude=sepolgen-1.0.0 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/restorecond/restorecond.conf policycoreutils-2.0.1/restorecond/restorecond.conf
--- nsapolicycoreutils/restorecond/restorecond.conf 2006-11-20 12:19:55.000000000 -0500
-+++ policycoreutils-2.0.1/restorecond/restorecond.conf 2007-02-15 15:01:06.000000000 -0500
++++ policycoreutils-2.0.1/restorecond/restorecond.conf 2007-02-15 15:16:09.000000000 -0500
@@ -1,7 +1,9 @@
/etc/resolv.conf
+/etc/localtime
@@ -4921,9 +78,9 @@
/var/log/wtmp
~/public_html
~/.mozilla/plugins/libflashplayer.so
-diff --exclude-from=exclude --exclude=sepolgen-1.0.0 --exclude=po -N -u -r nsapolicycoreutils/scripts/chcat policycoreutils-2.0.1/scripts/chcat
+diff --exclude-from=exclude --exclude=sepolgen-1.0.0 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/scripts/chcat policycoreutils-2.0.1/scripts/chcat
--- nsapolicycoreutils/scripts/chcat 2006-11-16 17:14:27.000000000 -0500
-+++ policycoreutils-2.0.1/scripts/chcat 2007-02-15 15:01:06.000000000 -0500
++++ policycoreutils-2.0.1/scripts/chcat 2007-02-15 15:16:09.000000000 -0500
@@ -25,11 +25,22 @@
import commands, sys, os, pwd, string, getopt, selinux
import seobject
@@ -5025,9 +182,9 @@
except ValueError, e:
usage()
-diff --exclude-from=exclude --exclude=sepolgen-1.0.0 --exclude=po -N -u -r nsapolicycoreutils/scripts/chcat.8 policycoreutils-2.0.1/scripts/chcat.8
+diff --exclude-from=exclude --exclude=sepolgen-1.0.0 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/scripts/chcat.8 policycoreutils-2.0.1/scripts/chcat.8
--- nsapolicycoreutils/scripts/chcat.8 2007-01-17 11:11:34.000000000 -0500
-+++ policycoreutils-2.0.1/scripts/chcat.8 2007-02-15 15:01:06.000000000 -0500
++++ policycoreutils-2.0.1/scripts/chcat.8 2007-02-15 15:16:09.000000000 -0500
@@ -3,30 +3,31 @@
chcat \- change file SELinux security category
.SH SYNOPSIS
@@ -5069,9 +226,9 @@
.PP
.B
Note:
-diff --exclude-from=exclude --exclude=sepolgen-1.0.0 --exclude=po -N -u -r nsapolicycoreutils/scripts/fixfiles.8 policycoreutils-2.0.1/scripts/fixfiles.8
+diff --exclude-from=exclude --exclude=sepolgen-1.0.0 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/scripts/fixfiles.8 policycoreutils-2.0.1/scripts/fixfiles.8
--- nsapolicycoreutils/scripts/fixfiles.8 2007-01-17 11:11:34.000000000 -0500
-+++ policycoreutils-2.0.1/scripts/fixfiles.8 2007-02-15 15:01:06.000000000 -0500
++++ policycoreutils-2.0.1/scripts/fixfiles.8 2007-02-15 15:16:09.000000000 -0500
@@ -54,7 +54,7 @@
change any incorrect file context labels.
.TP
@@ -5081,9 +238,18 @@
.TP
.B verify
List out files with incorrect file context labels, but do not change them.
-diff --exclude-from=exclude --exclude=sepolgen-1.0.0 --exclude=po -N -u -r nsapolicycoreutils/semanage/seobject.py policycoreutils-2.0.1/semanage/seobject.py
---- nsapolicycoreutils/semanage/seobject.py 2007-01-17 11:11:34.000000000 -0500
-+++ policycoreutils-2.0.1/semanage/seobject.py 2007-02-15 15:01:06.000000000 -0500
+diff --exclude-from=exclude --exclude=sepolgen-1.0.0 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/semanage/seobject.py policycoreutils-2.0.1/semanage/seobject.py
+--- nsapolicycoreutils/semanage/seobject.py 2007-02-20 08:43:10.000000000 -0500
++++ policycoreutils-2.0.1/semanage/seobject.py 2007-02-15 15:16:09.000000000 -0500
+@@ -139,7 +139,7 @@
+ translations = fd.readlines()
+ fd.close()
+ except IOError, e:
+- raise ValueError(_("Unable to open %s: translations not supported on non-MLS machines") % (self.filename) )
++ raise ValueError(_("Unable to open %s: translations not supported on non-MLS machines") % (self.filename, e) )
+
+ self.ddict = {}
+ self.comments = []
@@ -209,7 +209,8 @@
os.write(fd, self.out())
os.close(fd)
Index: policycoreutils.spec
===================================================================
RCS file: /cvs/dist/rpms/policycoreutils/devel/policycoreutils.spec,v
retrieving revision 1.370
retrieving revision 1.371
diff -u -r1.370 -r1.371
--- policycoreutils.spec 15 Feb 2007 20:27:17 -0000 1.370
+++ policycoreutils.spec 20 Feb 2007 14:57:59 -0000 1.371
@@ -5,8 +5,8 @@
%define sepolgenver 1.0.0
Summary: SELinux policy core utilities.
Name: policycoreutils
-Version: 2.0.1
-Release: 2%{?dist}
+Version: 2.0.2
+Release: 1%{?dist}
License: GPL
Group: System Environment/Base
Source: http://www.nsa.gov/selinux/archives/policycoreutils-%{version}.tgz
@@ -18,12 +18,14 @@
Patch: policycoreutils-rhat.patch
Patch1: policycoreutils-po.patch
Patch2: policycoreutils-sepolgen.patch
+Patch3: policycoreutils-gui.patch
BuildRequires: pam-devel libsepol-devel >= %{libsepolver} libsemanage-devel >= %{libsemanagever} libselinux-devel >= %{libselinuxver} libcap-devel audit-libs-devel gettext
Requires: /bin/mount /bin/egrep /bin/awk /usr/bin/diff /bin/rpm
Requires: libsepol >= %{libsepolver} libsemanage >= %{libsemanagever} libselinux-python coreutils audit-libs-python >= %{libauditver}
Requires(post): /sbin/service /sbin/chkconfig
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+Requires: %{name}-plugins
%description
Security-enhanced Linux is a feature of the Linux® kernel and a number
@@ -47,6 +49,7 @@
%patch -p1 -b .rhat
%patch1 -p1 -b .rhatpo
%patch2 -p1 -b .sepolgen
+%patch3 -p1 -b .gui
%build
make LSPP_PRIV=y LIBDIR="%{_libdir}" CFLAGS="%{optflags} -fPIE" LDFLAGS="-pie -Wl,-z,relro" all
@@ -179,6 +182,11 @@
/usr/bin/sepolgen-ifgen > /dev/null
%changelog
+* Tue Feb 20 2007 Dan Walsh <dwalsh at redhat.com> 2.0.2-1
+- Update to upstream
+ * Merged seobject exception handler fix from Caleb Case.
+ * Merged setfiles memory leak patch from Todd Miller.
+
* Thu Feb 15 2007 Dan Walsh <dwalsh at redhat.com> 2.0.1-2
- Cleanup man pages syntax
- Add sepolgen
Index: sources
===================================================================
RCS file: /cvs/dist/rpms/policycoreutils/devel/sources,v
retrieving revision 1.143
retrieving revision 1.144
diff -u -r1.143 -r1.144
--- sources 16 Feb 2007 13:55:14 -0000 1.143
+++ sources 20 Feb 2007 14:57:59 -0000 1.144
@@ -1,2 +1,2 @@
-f642af08f24e04a93269cb295050ef59 policycoreutils-2.0.1.tgz
42087696c0b3926244ccfe637ee8c89b sepolgen-1.0.0.tgz
+64bd1845e6457d0d238338a6a0292dfc policycoreutils-2.0.2.tgz
More information about the fedora-cvs-commits
mailing list