Add Miroslav patch to
- Fix previously_modified_initialize() to show modified changes properly for all selections
This commit is contained in:
parent
b371ba3420
commit
16f2333d36
@ -661123,7 +661123,7 @@ index dc3ce6a..3b93845 100644
|
||||
-
|
||||
-
|
||||
diff --git a/policycoreutils/sepolicy/info.c b/policycoreutils/sepolicy/info.c
|
||||
index cd1026a..ac44dfe 100644
|
||||
index cd1026a..52fd680 100644
|
||||
--- a/policycoreutils/sepolicy/info.c
|
||||
+++ b/policycoreutils/sepolicy/info.c
|
||||
@@ -1,12 +1,14 @@
|
||||
@ -661160,7 +661160,7 @@ index cd1026a..ac44dfe 100644
|
||||
if (!obj) return -1;
|
||||
rt = PyDict_SetItemString(dict, name, obj);
|
||||
Py_DECREF(obj);
|
||||
@@ -78,9 +80,287 @@ static int py_insert_bool(PyObject *dict, const char *name, int value)
|
||||
@@ -78,9 +80,285 @@ static int py_insert_bool(PyObject *dict, const char *name, int value)
|
||||
}
|
||||
|
||||
/**
|
||||
@ -661180,7 +661180,6 @@ index cd1026a..ac44dfe 100644
|
||||
+{
|
||||
+ PyObject *dict = NULL;
|
||||
+ int error = 0;
|
||||
+ int rt = 0;
|
||||
+ size_t i;
|
||||
+ char *tmp = NULL;
|
||||
+ const char *lvl_name = NULL;
|
||||
@ -661212,7 +661211,6 @@ index cd1026a..ac44dfe 100644
|
||||
+ if (py_insert_string(dict, lvl_name, tmp))
|
||||
+ goto err;
|
||||
+ free(tmp); tmp = NULL;
|
||||
+ if (rt) goto err;
|
||||
+ }
|
||||
+
|
||||
+ if (name && !apol_vector_get_size(v)) {
|
||||
@ -661449,7 +661447,7 @@ index cd1026a..ac44dfe 100644
|
||||
* @param type_datum Reference to sepol type_datum
|
||||
* @param policydb Reference to a policy
|
||||
* attributes
|
||||
@@ -130,7 +410,7 @@ cleanup:
|
||||
@@ -130,7 +408,7 @@ cleanup:
|
||||
}
|
||||
|
||||
/**
|
||||
@ -661458,7 +661456,7 @@ index cd1026a..ac44dfe 100644
|
||||
* all of that attribute's types.
|
||||
*
|
||||
* @param type_datum Reference to sepol type_datum
|
||||
@@ -146,7 +426,7 @@ static PyObject* get_attr(const qpol_type_t * type_datum, const apol_policy_t *
|
||||
@@ -146,7 +424,7 @@ static PyObject* get_attr(const qpol_type_t * type_datum, const apol_policy_t *
|
||||
unsigned char isattr;
|
||||
int error = 0;
|
||||
int rt = 0;
|
||||
@ -661467,7 +661465,7 @@ index cd1026a..ac44dfe 100644
|
||||
if (!dict) goto err;
|
||||
|
||||
if (qpol_type_get_name(q, type_datum, &attr_name))
|
||||
@@ -164,7 +444,7 @@ static PyObject* get_attr(const qpol_type_t * type_datum, const apol_policy_t *
|
||||
@@ -164,7 +442,7 @@ static PyObject* get_attr(const qpol_type_t * type_datum, const apol_policy_t *
|
||||
goto err;
|
||||
list = PyList_New(0);
|
||||
if (!list) goto err;
|
||||
@ -661476,7 +661474,7 @@ index cd1026a..ac44dfe 100644
|
||||
for (; !qpol_iterator_end(iter); qpol_iterator_next(iter)) {
|
||||
if (qpol_iterator_get_item(iter, (void **)&attr_datum))
|
||||
goto err;
|
||||
@@ -315,7 +595,7 @@ cleanup:
|
||||
@@ -315,7 +593,7 @@ cleanup:
|
||||
return list;
|
||||
}
|
||||
|
||||
@ -661485,7 +661483,7 @@ index cd1026a..ac44dfe 100644
|
||||
|
||||
PyObject *obj;
|
||||
qpol_policy_t *q = apol_policy_get_qpol(policydb);
|
||||
@@ -323,7 +603,7 @@ static PyObject* get_type( const qpol_type_t * type_datum, const apol_policy_t *
|
||||
@@ -323,7 +601,7 @@ static PyObject* get_type( const qpol_type_t * type_datum, const apol_policy_t *
|
||||
int error = 0;
|
||||
int rt;
|
||||
unsigned char isalias, ispermissive, isattr;
|
||||
@ -661494,7 +661492,7 @@ index cd1026a..ac44dfe 100644
|
||||
if (!dict) goto err;
|
||||
|
||||
if (qpol_type_get_name(q, type_datum, &type_name))
|
||||
@@ -360,7 +640,7 @@ err:
|
||||
@@ -360,7 +638,7 @@ err:
|
||||
py_decref(dict); dict = NULL;
|
||||
|
||||
cleanup:
|
||||
@ -661503,7 +661501,7 @@ index cd1026a..ac44dfe 100644
|
||||
return dict;
|
||||
}
|
||||
|
||||
@@ -370,11 +650,8 @@ cleanup:
|
||||
@@ -370,11 +648,8 @@ cleanup:
|
||||
* get statistics about a particular boolean; otherwise
|
||||
* the function gets statistics about all of the policy's booleans.
|
||||
*
|
||||
@ -661515,7 +661513,7 @@ index cd1026a..ac44dfe 100644
|
||||
* @param policydb Reference to a policy
|
||||
*
|
||||
* @return new reference, or NULL (setting an exception)
|
||||
@@ -399,7 +676,7 @@ static PyObject* get_booleans(const char *name, const apol_policy_t * policydb)
|
||||
@@ -399,7 +674,7 @@ static PyObject* get_booleans(const char *name, const apol_policy_t * policydb)
|
||||
if (qpol_bool_get_state(q, bool_datum, &state))
|
||||
goto err;
|
||||
|
||||
@ -661524,7 +661522,7 @@ index cd1026a..ac44dfe 100644
|
||||
if (!dict) goto err;
|
||||
if (py_insert_string(dict, "name", name))
|
||||
goto err;
|
||||
@@ -421,7 +698,7 @@ static PyObject* get_booleans(const char *name, const apol_policy_t * policydb)
|
||||
@@ -421,7 +696,7 @@ static PyObject* get_booleans(const char *name, const apol_policy_t * policydb)
|
||||
if (qpol_bool_get_state(q, bool_datum, &state))
|
||||
goto err;
|
||||
|
||||
@ -661533,7 +661531,7 @@ index cd1026a..ac44dfe 100644
|
||||
if (!dict) goto err;
|
||||
if (py_insert_string(dict, "name", bool_name))
|
||||
goto err;
|
||||
@@ -443,7 +720,7 @@ err:
|
||||
@@ -443,7 +718,7 @@ err:
|
||||
|
||||
cleanup:
|
||||
qpol_iterator_destroy(&iter);
|
||||
@ -661542,7 +661540,7 @@ index cd1026a..ac44dfe 100644
|
||||
return list;
|
||||
}
|
||||
|
||||
@@ -475,7 +752,7 @@ static PyObject* get_user(const qpol_user_t * user_datum, const apol_policy_t *
|
||||
@@ -475,7 +750,7 @@ static PyObject* get_user(const qpol_user_t * user_datum, const apol_policy_t *
|
||||
if (qpol_user_get_name(q, user_datum, &user_name))
|
||||
goto err;
|
||||
|
||||
@ -661551,7 +661549,7 @@ index cd1026a..ac44dfe 100644
|
||||
if (!dict) goto err;
|
||||
|
||||
if (py_insert_string(dict, "name", user_name))
|
||||
@@ -500,7 +777,7 @@ static PyObject* get_user(const qpol_user_t * user_datum, const apol_policy_t *
|
||||
@@ -500,7 +775,7 @@ static PyObject* get_user(const qpol_user_t * user_datum, const apol_policy_t *
|
||||
goto err;
|
||||
free(tmp); tmp=NULL;
|
||||
}
|
||||
@ -661560,7 +661558,7 @@ index cd1026a..ac44dfe 100644
|
||||
if (qpol_user_get_role_iter(q, user_datum, &iter))
|
||||
goto err;
|
||||
for (; !qpol_iterator_end(iter); qpol_iterator_next(iter)) {
|
||||
@@ -536,11 +813,8 @@ cleanup:
|
||||
@@ -536,11 +811,8 @@ cleanup:
|
||||
* Prints a textual representation of an object class and possibly
|
||||
* all of that object class' permissions.
|
||||
*
|
||||
@ -661572,7 +661570,7 @@ index cd1026a..ac44dfe 100644
|
||||
*/
|
||||
static PyObject* get_class(const qpol_class_t * class_datum, const apol_policy_t * policydb)
|
||||
{
|
||||
@@ -728,7 +1002,7 @@ cleanup:
|
||||
@@ -728,7 +1000,7 @@ cleanup:
|
||||
}
|
||||
|
||||
/**
|
||||
@ -661581,7 +661579,7 @@ index cd1026a..ac44dfe 100644
|
||||
* all of that role's types.
|
||||
*
|
||||
* @param type_datum Reference to sepol type_datum
|
||||
@@ -774,7 +1048,7 @@ static PyObject* get_role(const qpol_role_t * role_datum, const apol_policy_t *
|
||||
@@ -774,7 +1046,7 @@ static PyObject* get_role(const qpol_role_t * role_datum, const apol_policy_t *
|
||||
if (rt) goto err;
|
||||
}
|
||||
qpol_iterator_destroy(&iter);
|
||||
@ -661590,7 +661588,7 @@ index cd1026a..ac44dfe 100644
|
||||
if (qpol_role_get_type_iter(q, role_datum, &iter))
|
||||
goto err;
|
||||
if (qpol_iterator_get_size(iter, &n_types))
|
||||
@@ -857,7 +1131,7 @@ static PyObject* get_ports(const char *num, const apol_policy_t * policydb)
|
||||
@@ -857,7 +1129,7 @@ static PyObject* get_ports(const char *num, const apol_policy_t * policydb)
|
||||
}
|
||||
|
||||
if ((ocon_proto != IPPROTO_TCP) &&
|
||||
@ -661599,7 +661597,7 @@ index cd1026a..ac44dfe 100644
|
||||
goto err;
|
||||
|
||||
if (qpol_portcon_get_context(q, portcon, &ctxt)) {
|
||||
@@ -873,13 +1147,13 @@ static PyObject* get_ports(const char *num, const apol_policy_t * policydb)
|
||||
@@ -873,13 +1145,13 @@ static PyObject* get_ports(const char *num, const apol_policy_t * policydb)
|
||||
if ((c = apol_context_create_from_qpol_context(policydb, ctxt)) == NULL) {
|
||||
goto err;
|
||||
}
|
||||
@ -661616,7 +661614,7 @@ index cd1026a..ac44dfe 100644
|
||||
if (!dict) goto err;
|
||||
if (py_insert_string(dict, "type", type))
|
||||
goto err;
|
||||
@@ -952,7 +1226,7 @@ static PyObject* get_roles(const char *name, const apol_policy_t * policydb)
|
||||
@@ -952,7 +1224,7 @@ static PyObject* get_roles(const char *name, const apol_policy_t * policydb)
|
||||
}
|
||||
obj = get_role(role_datum, policydb);
|
||||
rt = py_append_obj(list, obj);
|
||||
@ -661625,7 +661623,7 @@ index cd1026a..ac44dfe 100644
|
||||
if (rt) goto err;
|
||||
} else {
|
||||
if (qpol_policy_get_role_iter(q, &iter))
|
||||
@@ -963,7 +1237,7 @@ static PyObject* get_roles(const char *name, const apol_policy_t * policydb)
|
||||
@@ -963,7 +1235,7 @@ static PyObject* get_roles(const char *name, const apol_policy_t * policydb)
|
||||
goto err;
|
||||
obj = get_role(role_datum, policydb);
|
||||
rt = py_append_obj(list, obj);
|
||||
@ -661634,7 +661632,7 @@ index cd1026a..ac44dfe 100644
|
||||
if (rt) goto err;
|
||||
}
|
||||
qpol_iterator_destroy(&iter);
|
||||
@@ -1011,7 +1285,7 @@ static PyObject* get_types(const char *name, const apol_policy_t * policydb)
|
||||
@@ -1011,7 +1283,7 @@ static PyObject* get_types(const char *name, const apol_policy_t * policydb)
|
||||
}
|
||||
obj = get_type(type_datum, policydb);
|
||||
rt = py_append_obj(list, obj);
|
||||
@ -661643,7 +661641,7 @@ index cd1026a..ac44dfe 100644
|
||||
if (rt) goto err;
|
||||
} else {
|
||||
if (qpol_policy_get_type_iter(q, &iter))
|
||||
@@ -1022,7 +1296,7 @@ static PyObject* get_types(const char *name, const apol_policy_t * policydb)
|
||||
@@ -1022,7 +1294,7 @@ static PyObject* get_types(const char *name, const apol_policy_t * policydb)
|
||||
goto err;
|
||||
obj = get_type(type_datum, policydb);
|
||||
rt = py_append_obj(list, obj);
|
||||
@ -661652,7 +661650,7 @@ index cd1026a..ac44dfe 100644
|
||||
if (rt) goto err;
|
||||
}
|
||||
}
|
||||
@@ -1066,6 +1340,12 @@ PyObject* info( int type, const char *name)
|
||||
@@ -1066,6 +1338,12 @@ PyObject* info( int type, const char *name)
|
||||
case PORT:
|
||||
output = get_ports(name, policy);
|
||||
break;
|
||||
@ -661665,7 +661663,7 @@ index cd1026a..ac44dfe 100644
|
||||
default:
|
||||
errno = EINVAL;
|
||||
PyErr_SetString(PyExc_RuntimeError,strerror(errno));
|
||||
@@ -1078,14 +1358,14 @@ PyObject* info( int type, const char *name)
|
||||
@@ -1078,14 +1356,14 @@ PyObject* info( int type, const char *name)
|
||||
PyObject *wrap_info(PyObject *UNUSED(self), PyObject *args){
|
||||
int type;
|
||||
const char *name;
|
||||
@ -661682,7 +661680,7 @@ index cd1026a..ac44dfe 100644
|
||||
|
||||
return info(type, name);
|
||||
}
|
||||
@@ -1098,4 +1378,6 @@ void init_info (PyObject *m) {
|
||||
@@ -1098,4 +1376,6 @@ void init_info (PyObject *m) {
|
||||
PyModule_AddIntConstant(m, "USER", USER);
|
||||
PyModule_AddIntConstant(m, "CLASS", CLASS);
|
||||
PyModule_AddIntConstant(m, "BOOLEAN", BOOLEAN);
|
||||
@ -663963,7 +663961,7 @@ index 6b53035..32ea970 100644
|
||||
out += "%s # %s\n" % (self.write_te(out_dir), _("Type Enforcement file"))
|
||||
out += "%s # %s\n" % (self.write_if(out_dir), _("Interface file"))
|
||||
diff --git a/policycoreutils/sepolicy/sepolicy/gui.py b/policycoreutils/sepolicy/sepolicy/gui.py
|
||||
index 94ddb72..e17262e 100644
|
||||
index 94ddb72..e663e20 100644
|
||||
--- a/policycoreutils/sepolicy/sepolicy/gui.py
|
||||
+++ b/policycoreutils/sepolicy/sepolicy/gui.py
|
||||
@@ -47,12 +47,15 @@ gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
|
||||
@ -664238,7 +664236,24 @@ index 94ddb72..e17262e 100644
|
||||
if app == items[0]:
|
||||
return True
|
||||
return False
|
||||
@@ -1114,7 +1110,7 @@ class SELinuxGui():
|
||||
@@ -1102,19 +1098,20 @@ class SELinuxGui():
|
||||
if rec[0] == "module":
|
||||
self.cust_dict["module"][rec[-1]] = { "enabled": rec[2] != "-d" }
|
||||
|
||||
- if "module" not in self.cust_dict:
|
||||
+ for i in keys:
|
||||
+ if i not in self.cust_dict:
|
||||
+ self.cust_dict.update({i:{}})
|
||||
+
|
||||
+ if not self.cust_dict["module"]:
|
||||
return
|
||||
for semodule, button in [ ("unconfined", self.disable_unconfined_button), ("permissivedomains", self.disable_permissive_button) ]:
|
||||
if semodule in self.cust_dict["module"]:
|
||||
button.set_active(self.cust_dict["module"][semodule]["enabled"])
|
||||
|
||||
- for i in keys:
|
||||
- if i not in self.cust_dict:
|
||||
- self.cust_dict.update({i:{}})
|
||||
|
||||
def executable_files_initialize(self, application):
|
||||
self.entrypoints = sepolicy.get_entrypoints(application)
|
||||
@ -664247,7 +664262,7 @@ index 94ddb72..e17262e 100644
|
||||
if len(self.entrypoints[exe]) == 0:
|
||||
continue
|
||||
file_class = self.entrypoints[exe][1]
|
||||
@@ -1151,7 +1147,7 @@ class SELinuxGui():
|
||||
@@ -1151,7 +1148,7 @@ class SELinuxGui():
|
||||
def writable_files_initialize(self, application):
|
||||
# Traversing the dictionary data struct
|
||||
self.writable_files = sepolicy.get_writable_files(application)
|
||||
@ -664256,7 +664271,7 @@ index 94ddb72..e17262e 100644
|
||||
if len(self.writable_files[write]) < 2:
|
||||
self.files_initial_data_insert(self.writable_files_liststore, None, write, _("all files"))
|
||||
continue
|
||||
@@ -1194,7 +1190,7 @@ class SELinuxGui():
|
||||
@@ -1194,7 +1191,7 @@ class SELinuxGui():
|
||||
|
||||
def application_files_initialize(self, application):
|
||||
self.file_types = sepolicy.get_file_types(application)
|
||||
@ -664265,7 +664280,7 @@ index 94ddb72..e17262e 100644
|
||||
if len(self.file_types[app]) == 0:
|
||||
continue
|
||||
file_class = self.file_types[app][1]
|
||||
@@ -1367,8 +1363,8 @@ class SELinuxGui():
|
||||
@@ -1367,8 +1364,8 @@ class SELinuxGui():
|
||||
self.treeview = self.network_in_treeview
|
||||
category = _("listen for inbound connections")
|
||||
|
||||
@ -664276,7 +664291,7 @@ index 94ddb72..e17262e 100644
|
||||
self.modify_button.set_tooltip_text(_("Modify port definitions to which the '%(APP)s' domain is allowed to %(PERM)s.") % {"APP": self.application, "PERM": category})
|
||||
|
||||
if self.transitions_radio_button.get_active():
|
||||
@@ -1439,7 +1435,7 @@ class SELinuxGui():
|
||||
@@ -1439,7 +1436,7 @@ class SELinuxGui():
|
||||
sort_column, _ = model.get_sort_column_id()
|
||||
val1 = self.unmarkup(model.get_value(row1, sort_column))
|
||||
val2 = self.unmarkup(model.get_value(row2, sort_column))
|
||||
@ -664285,7 +664300,7 @@ index 94ddb72..e17262e 100644
|
||||
|
||||
def display_more_detail(self, windows, path):
|
||||
it = self.boolean_filter.get_iter(path)
|
||||
@@ -1625,7 +1621,7 @@ class SELinuxGui():
|
||||
@@ -1625,7 +1622,7 @@ class SELinuxGui():
|
||||
self.files_type_combolist.clear()
|
||||
self.files_class_combolist.clear()
|
||||
compare = self.strip_domain(self.application)
|
||||
@ -664294,7 +664309,7 @@ index 94ddb72..e17262e 100644
|
||||
if d[0].startswith(compare) and d[0] != self.application and not d[0].startswith("httpd_sys"):
|
||||
exclude_list.append(self.strip_domain(d[0]))
|
||||
|
||||
@@ -1636,7 +1632,7 @@ class SELinuxGui():
|
||||
@@ -1636,7 +1633,7 @@ class SELinuxGui():
|
||||
self.files_class_combolist.set_value(iter, 0, sepolicy.file_type_str[files])
|
||||
|
||||
if ipage == EXE_PAGE and self.entrypoints != None:
|
||||
@ -664303,7 +664318,7 @@ index 94ddb72..e17262e 100644
|
||||
if exe.startswith(compare):
|
||||
iter = self.files_type_combolist.append()
|
||||
self.files_type_combolist.set_value(iter, 0, exe)
|
||||
@@ -1646,7 +1642,7 @@ class SELinuxGui():
|
||||
@@ -1646,7 +1643,7 @@ class SELinuxGui():
|
||||
self.files_class_combobox.set_sensitive(False)
|
||||
|
||||
elif ipage == WRITABLE_PAGE and self.writable_files != None:
|
||||
@ -664312,7 +664327,7 @@ index 94ddb72..e17262e 100644
|
||||
if write.startswith(compare) and not self.exclude_type(write, exclude_list) and write in self.file_types:
|
||||
iter = self.files_type_combolist.append()
|
||||
self.files_type_combolist.set_value(iter, 0, write)
|
||||
@@ -1663,7 +1659,7 @@ class SELinuxGui():
|
||||
@@ -1663,7 +1660,7 @@ class SELinuxGui():
|
||||
self.more_types_files_liststore.set_value(iter, 0, app)
|
||||
self.files_class_combobox.set_active(0)
|
||||
except AttributeError:
|
||||
@ -664321,7 +664336,7 @@ index 94ddb72..e17262e 100644
|
||||
pass
|
||||
self.files_type_combobox.set_active(0)
|
||||
self.files_mls_entry.set_text("s0")
|
||||
@@ -1704,13 +1700,13 @@ class SELinuxGui():
|
||||
@@ -1704,13 +1701,13 @@ class SELinuxGui():
|
||||
|
||||
try:
|
||||
if ipage == OUTBOUND_PAGE:
|
||||
@ -664339,7 +664354,7 @@ index 94ddb72..e17262e 100644
|
||||
for t,ports in netd[k]:
|
||||
if t not in port_types + ["port_t", "unreserved_port_t"]:
|
||||
if t.endswith("_type"):
|
||||
@@ -1805,7 +1801,7 @@ class SELinuxGui():
|
||||
@@ -1805,7 +1802,7 @@ class SELinuxGui():
|
||||
self.wait_mouse()
|
||||
try:
|
||||
self.dbus.semanage(update_buffer)
|
||||
@ -664348,7 +664363,7 @@ index 94ddb72..e17262e 100644
|
||||
self.error(e)
|
||||
self.ready_mouse()
|
||||
|
||||
@@ -1883,7 +1879,7 @@ class SELinuxGui():
|
||||
@@ -1883,7 +1880,7 @@ class SELinuxGui():
|
||||
tree.set_value(iter, 2, fclass)
|
||||
|
||||
def restore_to_default(self, *args):
|
||||
@ -664357,7 +664372,7 @@ index 94ddb72..e17262e 100644
|
||||
|
||||
def invalid_entry_retry(self, *args):
|
||||
self.closewindow(self.error_check_window)
|
||||
@@ -2136,7 +2132,7 @@ class SELinuxGui():
|
||||
@@ -2136,7 +2133,7 @@ class SELinuxGui():
|
||||
|
||||
def on_save_delete_file_equiv_clicked(self, *args):
|
||||
for delete in self.files_delete_liststore:
|
||||
@ -664366,7 +664381,7 @@ index 94ddb72..e17262e 100644
|
||||
|
||||
def on_toggle_update(self, cell, path, model):
|
||||
model[path][0] = not model[path][0]
|
||||
@@ -2178,7 +2174,6 @@ class SELinuxGui():
|
||||
@@ -2178,7 +2175,6 @@ class SELinuxGui():
|
||||
self.update = True
|
||||
self.update_treestore.clear()
|
||||
for bools in self.cur_dict["boolean"]:
|
||||
@ -664374,18 +664389,30 @@ index 94ddb72..e17262e 100644
|
||||
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))
|
||||
@@ -2444,8 +2439,8 @@ class SELinuxGui():
|
||||
@@ -2409,8 +2405,11 @@ class SELinuxGui():
|
||||
cur = selinux.getfilecon(path)[1].split(":")[2]
|
||||
con = selinux.matchpathcon(path,0)[1].split(":")[2]
|
||||
if self.verify(_("Run restorecon on %(PATH)s to change its type from %(CUR_CONTEXT)s to the default %(DEF_CONTEXT)s?") % {"PATH":path, "CUR_CONTEXT": cur, "DEF_CONTEXT": con}, title="restorecon dialog") == Gtk.ResponseType.YES:
|
||||
+ try:
|
||||
self.dbus.restorecon(path)
|
||||
self.application_selected()
|
||||
+ except dbus.exceptions.DBusException as e:
|
||||
+ self.error(e)
|
||||
|
||||
def new_updates(self, *args):
|
||||
self.update_button.set_sensitive(self.modified())
|
||||
@@ -2444,8 +2443,8 @@ class SELinuxGui():
|
||||
self.wait_mouse()
|
||||
try:
|
||||
self.dbus.semanage(update_buffer)
|
||||
- except dbus.exceptions.DBusException, e:
|
||||
- print e
|
||||
+ except dbus.exceptions.DBusException as e:
|
||||
+ print(e)
|
||||
+ self.error(e)
|
||||
self.ready_mouse()
|
||||
self.init_cur()
|
||||
|
||||
@@ -2539,34 +2534,7 @@ class SELinuxGui():
|
||||
@@ -2539,34 +2538,7 @@ class SELinuxGui():
|
||||
self.network_mls_label.set_visible(advanced)
|
||||
self.network_mls_entry.set_visible(advanced)
|
||||
|
||||
@ -664421,7 +664448,7 @@ index 94ddb72..e17262e 100644
|
||||
if label.get_text() == ADVANCED_SEARCH_LABEL[1]:
|
||||
label.set_text(ADVANCED_SEARCH_LABEL[0])
|
||||
self.close_popup()
|
||||
@@ -2574,25 +2542,6 @@ class SELinuxGui():
|
||||
@@ -2574,25 +2546,6 @@ class SELinuxGui():
|
||||
label.set_text(ADVANCED_SEARCH_LABEL[1])
|
||||
self.show_popup(self.advanced_search_window)
|
||||
|
||||
@ -664447,17 +664474,51 @@ index 94ddb72..e17262e 100644
|
||||
def set_enforce_text(self, value):
|
||||
if value:
|
||||
self.status_bar.push(self.context_id, _("System Status: Enforcing"))
|
||||
@@ -2601,6 +2550,9 @@ class SELinuxGui():
|
||||
@@ -2601,8 +2554,14 @@ class SELinuxGui():
|
||||
self.current_status_permissive.set_active(True)
|
||||
|
||||
def set_enforce(self, button):
|
||||
- self.dbus.setenforce(button.get_active())
|
||||
- self.set_enforce_text(button.get_active())
|
||||
+ if not self.finish_init:
|
||||
+ return
|
||||
+
|
||||
self.dbus.setenforce(button.get_active())
|
||||
self.set_enforce_text(button.get_active())
|
||||
+ try:
|
||||
+ self.dbus.setenforce(button.get_active())
|
||||
+ self.set_enforce_text(button.get_active())
|
||||
+ except dbus.exceptions.DBusException as e:
|
||||
+ self.error(e)
|
||||
|
||||
@@ -2728,7 +2680,7 @@ class SELinuxGui():
|
||||
def on_browse_select(self, *args):
|
||||
filename = self.file_dialog.get_filename()
|
||||
@@ -2662,16 +2621,22 @@ class SELinuxGui():
|
||||
self.system_policy_type_combobox.set_active(self.typeHistory)
|
||||
return None
|
||||
|
||||
- self.dbus.change_default_policy(self.combo_get_active_text(self.system_policy_type_combobox))
|
||||
- self.dbus.relabel_on_boot(True)
|
||||
- self.typeHistory = self.system_policy_type_combobox.get_active()
|
||||
+ try:
|
||||
+ self.dbus.change_default_policy(self.combo_get_active_text(self.system_policy_type_combobox))
|
||||
+ self.dbus.relabel_on_boot(True)
|
||||
+ self.typeHistory = self.system_policy_type_combobox.get_active()
|
||||
+ except dbus.exceptions.DBusException as e:
|
||||
+ self.error(e)
|
||||
|
||||
def change_default_mode(self, button):
|
||||
if not self.finish_init:
|
||||
return
|
||||
self.enabled_changed(button)
|
||||
if button.get_active():
|
||||
- self.dbus.change_default_mode(button.get_label().lower())
|
||||
+ try:
|
||||
+ self.dbus.change_default_mode(button.get_label().lower())
|
||||
+ except dbus.exceptions.DBusException as e:
|
||||
+ self.error(e)
|
||||
|
||||
def import_config_show(self, *args):
|
||||
self.file_dialog.set_action(Gtk.FileChooserAction.OPEN)
|
||||
@@ -2728,7 +2693,7 @@ class SELinuxGui():
|
||||
return
|
||||
try:
|
||||
self.dbus.relabel_on_boot(active)
|
||||
@ -664466,6 +664527,24 @@ index 94ddb72..e17262e 100644
|
||||
self.error(e)
|
||||
|
||||
def closewindow(self, window, *args):
|
||||
@@ -2814,10 +2779,13 @@ class SELinuxGui():
|
||||
if not self.finish_init:
|
||||
return
|
||||
self.wait_mouse()
|
||||
- if self.enable_permissive_button.get_active():
|
||||
- self.dbus.semanage("module -e permissivedomains")
|
||||
- else:
|
||||
- self.dbus.semanage("module -d permissivedomains")
|
||||
+ try:
|
||||
+ if self.enable_permissive_button.get_active():
|
||||
+ self.dbus.semanage("module -e permissivedomains")
|
||||
+ else:
|
||||
+ self.dbus.semanage("module -d permissivedomains")
|
||||
+ except dbus.exceptions.DBusException as e:
|
||||
+ self.error(e)
|
||||
self.ready_mouse()
|
||||
|
||||
def confirmation_close(self, button, *args):
|
||||
diff --git a/policycoreutils/sepolicy/sepolicy/interface.py b/policycoreutils/sepolicy/sepolicy/interface.py
|
||||
index bbabb3b..63cff9b 100644
|
||||
--- a/policycoreutils/sepolicy/sepolicy/interface.py
|
||||
|
@ -7,7 +7,7 @@
|
||||
Summary: SELinux policy core utilities
|
||||
Name: policycoreutils
|
||||
Version: 2.2.5
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
License: GPLv2
|
||||
Group: System Environment/Base
|
||||
# Based on git repository with tag 20101221
|
||||
@ -383,8 +383,12 @@ The policycoreutils-restorecond package contains the restorecond service.
|
||||
%systemd_postun_with_restart restorecond.service
|
||||
|
||||
%changelog
|
||||
* Thu Jan 16 2014 Dan Walsh <dwalsh@redhat.com> - 2.2.5-3
|
||||
- Add Miroslav patch to
|
||||
- Fix previously_modified_initialize() to show modified changes properly for all selections
|
||||
|
||||
* Wed Jan 8 2014 Dan Walsh <dwalsh@redhat.com> - 2.2.5-2
|
||||
- Don't require /usr/share/selinux/devel/Makefile to build permissive domains
|
||||
- Do not require /usr/share/selinux/devel/Makefile to build permissive domains
|
||||
|
||||
* Mon Jan 6 2014 Dan Walsh <dwalsh@redhat.com> - 2.2.5-1
|
||||
- Update to upstream
|
||||
|
Loading…
Reference in New Issue
Block a user