policy_module(mono, 1.11.1)

########################################
#
# Declarations
#

attribute mono_domain;

attribute_role mono_roles;

type mono_t, mono_domain;
type mono_exec_t;
init_system_domain(mono_t, mono_exec_t)
role mono_roles types mono_t;

application_type(mono_t)

optional_policy(`
	wm_application_domain(mono_t, mono_exec_t)
')

########################################
#
# Common local policy
#

allow mono_domain self:process { signal getsched execheap execmem execstack };

########################################
#
# local policy
#

userdom_user_home_dir_filetrans_user_home_content(mono_t, { dir file lnk_file fifo_file sock_file })

init_dbus_chat_script(mono_t)

optional_policy(`
	avahi_dbus_chat(mono_t)
')

optional_policy(`
	cups_dbus_chat(mono_t)
')

optional_policy(`
	networkmanager_dbus_chat(mono_t)
')

optional_policy(`
	rpm_dbus_chat(mono_t)
')

optional_policy(`
	unconfined_domain(mono_t)
	unconfined_dbus_chat(mono_t)
	unconfined_dbus_connect(mono_t)
')

optional_policy(`
	xserver_rw_shm(mono_t)
')
