##
@@ -4445,7 +4533,7 @@ index f6eb485..fac6fe5 100644
## This is an interface to support third party modules
## and its use is not allowed in upstream reference
## policy.
-@@ -1171,8 +1357,30 @@ interface(`apache_cgi_domain',`
+@@ -1171,8 +1403,30 @@ interface(`apache_cgi_domain',`
########################################
##
@@ -4478,7 +4566,7 @@ index f6eb485..fac6fe5 100644
##
##
##
-@@ -1189,18 +1397,19 @@ interface(`apache_cgi_domain',`
+@@ -1189,18 +1443,19 @@ interface(`apache_cgi_domain',`
interface(`apache_admin',`
gen_require(`
attribute httpdcontent, httpd_script_exec_type;
@@ -4507,7 +4595,7 @@ index f6eb485..fac6fe5 100644
init_labeled_script_domtrans($1, httpd_initrc_exec_t)
domain_system_change_exemption($1)
-@@ -1210,10 +1419,10 @@ interface(`apache_admin',`
+@@ -1210,10 +1465,10 @@ interface(`apache_admin',`
apache_manage_all_content($1)
miscfiles_manage_public_files($1)
@@ -4521,7 +4609,7 @@ index f6eb485..fac6fe5 100644
admin_pattern($1, httpd_log_t)
admin_pattern($1, httpd_modules_t)
-@@ -1224,9 +1433,129 @@ interface(`apache_admin',`
+@@ -1224,9 +1479,141 @@ interface(`apache_admin',`
admin_pattern($1, httpd_var_run_t)
files_pid_filetrans($1, httpd_var_run_t, file)
@@ -4585,7 +4673,19 @@ index f6eb485..fac6fe5 100644
+
+
+ apache_filetrans_home_content($1)
++ files_usr_filetrans($1, httpd_sys_content_t, dir, "gallery2")
++ files_usr_filetrans($1, httpd_sys_content_t, dir, "z-push")
++ files_etc_filetrans($1, httpd_sys_content_t, dir, "z-push")
++ files_etc_filetrans($1, httpd_sys_content_t, dir, "web")
++ files_etc_filetrans($1, httpd_sys_content_t, dir, "WebCalendar")
++ files_etc_filetrans($1, httpd_sys_content_t, dir, "htdig")
++ files_etc_filetrans($1, httpd_sys_rw_content_t, dir, "horde")
++ files_etc_filetrans($1, httpd_sys_rw_content_t, dir, "owncloud")
+ filetrans_pattern($1, httpd_sys_content_t, httpd_sys_rw_content_t, file, "settings.php")
++ filetrans_pattern($1, httpd_sys_content_t, httpd_sys_rw_content_t, dir, "smarty")
++ filetrans_pattern($1, httpd_sys_content_t, httpd_sys_rw_content_t, dir, "uploads")
++ filetrans_pattern($1, httpd_sys_content_t, httpd_sys_rw_content_t, dir, "wp-content")
++ filetrans_pattern($1, httpd_sys_content_t, httpd_sys_rw_content_t, dir, "upgrade")
+ userdom_user_tmp_filetrans($1, httpd_tmp_t, dir, "apache")
+')
+
@@ -4656,7 +4756,7 @@ index f6eb485..fac6fe5 100644
+ filetrans_pattern($1, { httpd_user_content_t httpd_user_script_exec_t }, httpd_user_htaccess_t, file, ".htaccess")
')
diff --git a/apache.te b/apache.te
-index 6649962..0e09bca 100644
+index 6649962..e3e190e 100644
--- a/apache.te
+++ b/apache.te
@@ -5,280 +5,317 @@ policy_module(apache, 2.7.2)
@@ -5178,10 +5278,11 @@ index 6649962..0e09bca 100644
type httpd_suexec_tmp_t;
files_tmp_file(httpd_suexec_tmp_t)
-+# setup the system domain for system CGI scripts
- apache_content_template(sys)
+-apache_content_template(sys)
-corecmd_shell_entry_type(httpd_sys_script_t)
-typealias httpd_sys_content_t alias ntop_http_content_t;
++# setup the system domain for system CGI scripts
++apache_content_template(httpd_sys)
+
+typeattribute httpd_sys_content_t httpdcontent; # customizable
+typeattribute httpd_sys_rw_content_t httpdcontent; # customizable
@@ -5196,9 +5297,12 @@ index 6649962..0e09bca 100644
type httpd_tmp_t;
files_tmp_file(httpd_tmp_t)
-@@ -326,12 +391,19 @@ files_tmpfs_file(httpd_tmpfs_t)
+@@ -324,14 +389,21 @@ files_tmp_file(httpd_tmp_t)
+ type httpd_tmpfs_t;
+ files_tmpfs_file(httpd_tmpfs_t)
- apache_content_template(user)
+-apache_content_template(user)
++apache_content_template(httpd_user)
ubac_constrained(httpd_user_script_t)
+
+typeattribute httpd_user_content_t httpdcontent;
@@ -5715,7 +5819,7 @@ index 6649962..0e09bca 100644
')
tunable_policy(`httpd_setrlimit',`
-@@ -695,49 +813,48 @@ tunable_policy(`httpd_setrlimit',`
+@@ -695,66 +813,56 @@ tunable_policy(`httpd_setrlimit',`
tunable_policy(`httpd_ssi_exec',`
corecmd_shell_domtrans(httpd_t, httpd_sys_script_t)
@@ -5750,16 +5854,27 @@ index 6649962..0e09bca 100644
-tunable_policy(`httpd_use_cifs && httpd_builtin_scripting',`
- fs_exec_cifs_files(httpd_t)
-')
-+optional_policy(`
-+ cobbler_list_config(httpd_t)
-+ cobbler_read_config(httpd_t)
-
+-
-tunable_policy(`httpd_use_fusefs',`
- fs_list_auto_mountpoints(httpd_t)
- fs_manage_fusefs_dirs(httpd_t)
- fs_manage_fusefs_files(httpd_t)
- fs_read_fusefs_symlinks(httpd_t)
-')
+-
+-tunable_policy(`httpd_use_fusefs && httpd_builtin_scripting',`
+- fs_exec_fusefs_files(httpd_t)
+-')
++optional_policy(`
++ cobbler_list_config(httpd_t)
++ cobbler_read_config(httpd_t)
+
+-tunable_policy(`httpd_use_nfs',`
+- fs_list_auto_mountpoints(httpd_t)
+- fs_manage_nfs_dirs(httpd_t)
+- fs_manage_nfs_files(httpd_t)
+- fs_manage_nfs_symlinks(httpd_t)
+-')
+ tunable_policy(`httpd_serve_cobbler_files',`
+ cobbler_manage_lib_files(httpd_t)
+',`
@@ -5767,27 +5882,22 @@ index 6649962..0e09bca 100644
+ cobbler_search_lib(httpd_t)
+ ')
--tunable_policy(`httpd_use_fusefs && httpd_builtin_scripting',`
-- fs_exec_fusefs_files(httpd_t)
+-tunable_policy(`httpd_use_nfs && httpd_builtin_scripting',`
+- fs_exec_nfs_files(httpd_t)
+ tunable_policy(`httpd_can_network_connect_cobbler',`
+ corenet_tcp_connect_cobbler_port(httpd_t)
+ ')
')
--tunable_policy(`httpd_use_nfs',`
-- fs_list_auto_mountpoints(httpd_t)
-- fs_manage_nfs_dirs(httpd_t)
-- fs_manage_nfs_files(httpd_t)
-- fs_manage_nfs_symlinks(httpd_t)
-+optional_policy(`
+ optional_policy(`
+- calamaris_read_www_files(httpd_t)
+ tunable_policy(`httpd_use_sasl',`
+ sasl_connect(httpd_t)
+ ')
')
--tunable_policy(`httpd_use_nfs && httpd_builtin_scripting',`
-- fs_exec_nfs_files(httpd_t)
-+optional_policy(`
+ optional_policy(`
+- ccs_read_config(httpd_t)
+ # Support for ABRT retrace server
+ # mod_wsgi
+ abrt_manage_spool_retrace(httpd_t)
@@ -5796,22 +5906,18 @@ index 6649962..0e09bca 100644
')
optional_policy(`
-@@ -748,14 +865,6 @@ optional_policy(`
- ccs_read_config(httpd_t)
+- clamav_domtrans_clamscan(httpd_t)
++ calamaris_read_www_files(httpd_t)
')
--optional_policy(`
-- clamav_domtrans_clamscan(httpd_t)
--')
--
--optional_policy(`
+ optional_policy(`
- cobbler_read_config(httpd_t)
- cobbler_read_lib_files(httpd_t)
--')
++ ccs_read_config(httpd_t)
+ ')
optional_policy(`
- cron_system_entry(httpd_t, httpd_exec_t)
-@@ -770,6 +879,23 @@ optional_policy(`
+@@ -770,6 +878,23 @@ optional_policy(`
')
optional_policy(`
@@ -5835,7 +5941,7 @@ index 6649962..0e09bca 100644
dbus_system_bus_client(httpd_t)
tunable_policy(`httpd_dbus_avahi',`
-@@ -786,35 +912,48 @@ optional_policy(`
+@@ -786,35 +911,53 @@ optional_policy(`
')
optional_policy(`
@@ -5858,6 +5964,11 @@ index 6649962..0e09bca 100644
- ldap_tcp_connect(httpd_t)
- ')
+optional_policy(`
++ mirrormanager_read_lib_files(httpd_t)
++ mirrormanager_read_log(httpd_t)
++')
++
++optional_policy(`
+ jetty_admin(httpd_t)
+')
+
@@ -5897,7 +6008,7 @@ index 6649962..0e09bca 100644
tunable_policy(`httpd_manage_ipa',`
memcached_manage_pid_files(httpd_t)
-@@ -822,8 +961,18 @@ optional_policy(`
+@@ -822,8 +965,18 @@ optional_policy(`
')
optional_policy(`
@@ -5916,7 +6027,7 @@ index 6649962..0e09bca 100644
tunable_policy(`httpd_can_network_connect_db',`
mysql_tcp_connect(httpd_t)
-@@ -832,6 +981,7 @@ optional_policy(`
+@@ -832,6 +985,7 @@ optional_policy(`
optional_policy(`
nagios_read_config(httpd_t)
@@ -5924,7 +6035,7 @@ index 6649962..0e09bca 100644
')
optional_policy(`
-@@ -842,20 +992,39 @@ optional_policy(`
+@@ -842,20 +996,39 @@ optional_policy(`
')
optional_policy(`
@@ -5970,7 +6081,7 @@ index 6649962..0e09bca 100644
')
optional_policy(`
-@@ -863,19 +1032,35 @@ optional_policy(`
+@@ -863,19 +1036,35 @@ optional_policy(`
')
optional_policy(`
@@ -6006,7 +6117,7 @@ index 6649962..0e09bca 100644
udev_read_db(httpd_t)
')
-@@ -883,65 +1068,173 @@ optional_policy(`
+@@ -883,65 +1072,173 @@ optional_policy(`
yam_read_content(httpd_t)
')
@@ -6079,11 +6190,10 @@ index 6649962..0e09bca 100644
-',`
- userdom_dontaudit_use_user_terminals(httpd_helper_t)
+ userdom_use_inherited_user_terminals(httpd_helper_t)
- ')
-
- ########################################
- #
--# Suexec local policy
++')
++
++########################################
++#
+# Apache PHP script local policy
+#
+
@@ -6142,10 +6252,11 @@ index 6649962..0e09bca 100644
+ tunable_policy(`httpd_can_network_connect_db',`
+ postgresql_tcp_connect(httpd_php_t)
+ ')
-+')
-+
-+########################################
-+#
+ ')
+
+ ########################################
+ #
+-# Suexec local policy
+# Apache suexec local policy
#
@@ -6202,7 +6313,7 @@ index 6649962..0e09bca 100644
files_dontaudit_search_pids(httpd_suexec_t)
files_search_home(httpd_suexec_t)
-@@ -950,123 +1243,74 @@ auth_use_nsswitch(httpd_suexec_t)
+@@ -950,123 +1247,74 @@ auth_use_nsswitch(httpd_suexec_t)
logging_search_logs(httpd_suexec_t)
logging_send_syslog_msg(httpd_suexec_t)
@@ -6357,7 +6468,7 @@ index 6649962..0e09bca 100644
mysql_read_config(httpd_suexec_t)
tunable_policy(`httpd_can_network_connect_db',`
-@@ -1083,172 +1327,106 @@ optional_policy(`
+@@ -1083,172 +1331,106 @@ optional_policy(`
')
')
@@ -6379,11 +6490,11 @@ index 6649962..0e09bca 100644
-allow httpd_script_domains self:unix_stream_socket connectto;
-
-allow httpd_script_domains httpd_sys_content_t:dir search_dir_perms;
-+allow httpd_sys_script_t self:process getsched;
-
+-
-append_files_pattern(httpd_script_domains, httpd_log_t, httpd_log_t)
-read_lnk_files_pattern(httpd_script_domains, httpd_log_t, httpd_log_t)
--
++allow httpd_sys_script_t self:process getsched;
+
-kernel_dontaudit_search_sysctl(httpd_script_domains)
-kernel_dontaudit_search_kernel_sysctl(httpd_script_domains)
-
@@ -6539,8 +6650,7 @@ index 6649962..0e09bca 100644
-kernel_read_kernel_sysctls(httpd_sys_script_t)
-
-fs_search_auto_mountpoints(httpd_sys_script_t)
-+corenet_all_recvfrom_netlabel(httpd_sys_script_t)
-
+-
-files_read_var_symlinks(httpd_sys_script_t)
-files_search_var_lib(httpd_sys_script_t)
-files_search_spool(httpd_sys_script_t)
@@ -6556,7 +6666,8 @@ index 6649962..0e09bca 100644
- corenet_sendrecv_pop_client_packets(httpd_sys_script_t)
- corenet_tcp_connect_pop_port(httpd_sys_script_t)
- corenet_tcp_sendrecv_pop_port(httpd_sys_script_t)
--
++corenet_all_recvfrom_netlabel(httpd_sys_script_t)
+
- mta_send_mail(httpd_sys_script_t)
- mta_signal_system_mail(httpd_sys_script_t)
+tunable_policy(`httpd_enable_cgi && httpd_can_network_connect',`
@@ -6594,7 +6705,7 @@ index 6649962..0e09bca 100644
')
tunable_policy(`httpd_read_user_content',`
-@@ -1256,64 +1434,74 @@ tunable_policy(`httpd_read_user_content',`
+@@ -1256,64 +1438,74 @@ tunable_policy(`httpd_read_user_content',`
')
tunable_policy(`httpd_use_cifs',`
@@ -6691,7 +6802,7 @@ index 6649962..0e09bca 100644
########################################
#
-@@ -1321,8 +1509,15 @@ miscfiles_read_localization(httpd_rotatelogs_t)
+@@ -1321,8 +1513,15 @@ miscfiles_read_localization(httpd_rotatelogs_t)
#
optional_policy(`
@@ -6708,15 +6819,14 @@ index 6649962..0e09bca 100644
')
########################################
-@@ -1330,49 +1525,38 @@ optional_policy(`
+@@ -1330,49 +1529,38 @@ optional_policy(`
# User content local policy
#
-tunable_policy(`httpd_enable_homedirs',`
- userdom_search_user_home_dirs(httpd_user_script_t)
-')
-+auth_use_nsswitch(httpd_user_script_t)
-
+-
-tunable_policy(`httpd_enable_homedirs && use_samba_home_dirs',`
- fs_list_auto_mountpoints(httpd_user_script_t)
- fs_read_cifs_files(httpd_user_script_t)
@@ -6726,7 +6836,8 @@ index 6649962..0e09bca 100644
-tunable_policy(`httpd_enable_homedirs && use_samba_home_dirs && httpd_builtin_scripting',`
- fs_exec_cifs_files(httpd_user_script_t)
-')
--
++auth_use_nsswitch(httpd_user_script_t)
+
-tunable_policy(`httpd_enable_homedirs && use_nfs_home_dirs',`
- fs_list_auto_mountpoints(httpd_user_script_t)
- fs_read_nfs_files(httpd_user_script_t)
@@ -6773,7 +6884,7 @@ index 6649962..0e09bca 100644
kernel_read_system_state(httpd_passwd_t)
corecmd_exec_bin(httpd_passwd_t)
-@@ -1382,38 +1566,99 @@ dev_read_urand(httpd_passwd_t)
+@@ -1382,38 +1570,100 @@ dev_read_urand(httpd_passwd_t)
domain_use_interactive_fds(httpd_passwd_t)
@@ -6791,8 +6902,7 @@ index 6649962..0e09bca 100644
+systemd_manage_passwd_run(httpd_passwd_t)
+systemd_manage_passwd_run(httpd_t)
+#systemd_passwd_agent_dev_template(httpd)
-
--allow httpd_gpg_t self:process setrlimit;
++
+domtrans_pattern(httpd_t, httpd_passwd_exec_t, httpd_passwd_t)
+dontaudit httpd_passwd_t httpd_config_t:file read;
+
@@ -6826,7 +6936,8 @@ index 6649962..0e09bca 100644
+
+miscfiles_read_fonts(httpd_script_type)
+miscfiles_read_public_files(httpd_script_type)
-+
+
+-allow httpd_gpg_t self:process setrlimit;
+allow httpd_t httpd_script_type:unix_stream_socket connectto;
-allow httpd_gpg_t httpd_t:fd use;
@@ -6842,6 +6953,7 @@ index 6649962..0e09bca 100644
+allow httpd_script_type self:process { setsched signal_perms };
+allow httpd_script_type self:unix_stream_socket create_stream_socket_perms;
+allow httpd_script_type self:unix_dgram_socket create_socket_perms;
++allow httpd_script_type httpd_t:unix_stream_socket rw_stream_socket_perms;
-files_read_usr_files(httpd_gpg_t)
+allow httpd_script_type httpd_t:fd use;
@@ -6894,10 +7006,10 @@ index 6649962..0e09bca 100644
+ corenet_tcp_connect_osapi_compute_port(httpd_t)
')
diff --git a/apcupsd.fc b/apcupsd.fc
-index 5ec0e13..1c37fe1 100644
+index 5ec0e13..274704f 100644
--- a/apcupsd.fc
+++ b/apcupsd.fc
-@@ -1,10 +1,13 @@
+@@ -1,18 +1,21 @@
/etc/rc\.d/init\.d/apcupsd -- gen_context(system_u:object_r:apcupsd_initrc_exec_t,s0)
+/usr/lib/systemd/system/apcupsd.* -- gen_context(system_u:object_r:apcupsd_unit_file_t,s0)
@@ -6911,10 +7023,46 @@ index 5ec0e13..1c37fe1 100644
/var/log/apcupsd\.events.* -- gen_context(system_u:object_r:apcupsd_log_t,s0)
/var/log/apcupsd\.status.* -- gen_context(system_u:object_r:apcupsd_log_t,s0)
+
+ /var/run/apcupsd\.pid -- gen_context(system_u:object_r:apcupsd_var_run_t,s0)
+
+-/var/www/apcupsd/multimon\.cgi -- gen_context(system_u:object_r:httpd_apcupsd_cgi_script_exec_t,s0)
+-/var/www/apcupsd/upsfstats\.cgi -- gen_context(system_u:object_r:httpd_apcupsd_cgi_script_exec_t,s0)
+-/var/www/apcupsd/upsimage\.cgi -- gen_context(system_u:object_r:httpd_apcupsd_cgi_script_exec_t,s0)
+-/var/www/apcupsd/upsstats\.cgi -- gen_context(system_u:object_r:httpd_apcupsd_cgi_script_exec_t,s0)
+-/var/www/cgi-bin/apcgui(/.*)? gen_context(system_u:object_r:httpd_apcupsd_cgi_script_exec_t,s0)
++/var/www/apcupsd/multimon\.cgi -- gen_context(system_u:object_r:apcupsd_cgi_script_exec_t,s0)
++/var/www/apcupsd/upsfstats\.cgi -- gen_context(system_u:object_r:apcupsd_cgi_script_exec_t,s0)
++/var/www/apcupsd/upsimage\.cgi -- gen_context(system_u:object_r:apcupsd_cgi_script_exec_t,s0)
++/var/www/apcupsd/upsstats\.cgi -- gen_context(system_u:object_r:apcupsd_cgi_script_exec_t,s0)
++/var/www/cgi-bin/apcgui(/.*)? gen_context(system_u:object_r:apcupsd_cgi_script_exec_t,s0)
diff --git a/apcupsd.if b/apcupsd.if
-index f3c0aba..b6afc90 100644
+index f3c0aba..9c06313 100644
--- a/apcupsd.if
+++ b/apcupsd.if
+@@ -102,7 +102,7 @@ interface(`apcupsd_append_log',`
+ ########################################
+ ##
+ ## Execute a domain transition to
+-## run httpd_apcupsd_cgi_script.
++## run apcupsd_cgi_script.
+ ##
+ ##
+ ##
+@@ -112,11 +112,11 @@ interface(`apcupsd_append_log',`
+ #
+ interface(`apcupsd_cgi_script_domtrans',`
+ gen_require(`
+- type httpd_apcupsd_cgi_script_t, httpd_apcupsd_cgi_script_exec_t;
++ type apcupsd_cgi_script_t, apcupsd_cgi_script_exec_t;
+ ')
+
+ files_search_var($1)
+- domtrans_pattern($1, httpd_apcupsd_cgi_script_exec_t, httpd_apcupsd_cgi_script_t)
++ domtrans_pattern($1, apcupsd_cgi_script_exec_t, apcupsd_cgi_script_t)
+
+ optional_policy(`
+ apache_search_sys_content($1)
@@ -125,6 +125,49 @@ interface(`apcupsd_cgi_script_domtrans',`
########################################
@@ -6993,7 +7141,7 @@ index f3c0aba..b6afc90 100644
+ allow $1 apcupsd_unit_file_t:service all_service_perms;
')
diff --git a/apcupsd.te b/apcupsd.te
-index 080bc4d..b4c43c7 100644
+index 080bc4d..4b86e25 100644
--- a/apcupsd.te
+++ b/apcupsd.te
@@ -24,6 +24,9 @@ files_tmp_file(apcupsd_tmp_t)
@@ -7034,7 +7182,7 @@ index 080bc4d..b4c43c7 100644
corenet_udp_bind_snmp_port(apcupsd_t)
corenet_sendrecv_snmp_server_packets(apcupsd_t)
-@@ -74,19 +76,25 @@ corenet_udp_sendrecv_snmp_port(apcupsd_t)
+@@ -74,19 +76,23 @@ corenet_udp_sendrecv_snmp_port(apcupsd_t)
dev_rw_generic_usb_dev(apcupsd_t)
@@ -7058,20 +7206,59 @@ index 080bc4d..b4c43c7 100644
sysnet_dns_name_resolve(apcupsd_t)
-userdom_use_user_ttys(apcupsd_t)
-+systemd_start_power_services(apcupsd_t)
-+
+userdom_use_inherited_user_ttys(apcupsd_t)
optional_policy(`
hostname_exec(apcupsd_t)
-@@ -112,7 +120,6 @@ optional_policy(`
- allow httpd_apcupsd_cgi_script_t self:tcp_socket create_stream_socket_perms;
- allow httpd_apcupsd_cgi_script_t self:udp_socket create_socket_perms;
+@@ -101,6 +107,11 @@ optional_policy(`
+ shutdown_domtrans(apcupsd_t)
+ ')
+
++optional_policy(`
++ systemd_start_power_services(apcupsd_t)
++ systemd_status_power_services(apcupsd_t)
++')
++
+ ########################################
+ #
+ # CGI local policy
+@@ -108,20 +119,20 @@ optional_policy(`
+ optional_policy(`
+ apache_content_template(apcupsd_cgi)
+-
+- allow httpd_apcupsd_cgi_script_t self:tcp_socket create_stream_socket_perms;
+- allow httpd_apcupsd_cgi_script_t self:udp_socket create_socket_perms;
+-
- corenet_all_recvfrom_unlabeled(httpd_apcupsd_cgi_script_t)
- corenet_all_recvfrom_netlabel(httpd_apcupsd_cgi_script_t)
- corenet_tcp_sendrecv_generic_if(httpd_apcupsd_cgi_script_t)
- corenet_tcp_sendrecv_generic_node(httpd_apcupsd_cgi_script_t)
+- corenet_all_recvfrom_netlabel(httpd_apcupsd_cgi_script_t)
+- corenet_tcp_sendrecv_generic_if(httpd_apcupsd_cgi_script_t)
+- corenet_tcp_sendrecv_generic_node(httpd_apcupsd_cgi_script_t)
+- corenet_tcp_sendrecv_all_ports(httpd_apcupsd_cgi_script_t)
+- corenet_sendrecv_apcupsd_client_packets(httpd_apcupsd_cgi_script_t)
+- corenet_tcp_connect_apcupsd_port(httpd_apcupsd_cgi_script_t)
+- corenet_udp_sendrecv_generic_if(httpd_apcupsd_cgi_script_t)
+- corenet_udp_sendrecv_generic_node(httpd_apcupsd_cgi_script_t)
+- corenet_udp_sendrecv_all_ports(httpd_apcupsd_cgi_script_t)
+-
+- sysnet_dns_name_resolve(httpd_apcupsd_cgi_script_t)
++ apache_content_alias_template(apcupsd_cgi, apcupsd_cgi)
++
++ allow apcupsd_cgi_script_t self:tcp_socket create_stream_socket_perms;
++ allow apcupsd_cgi_script_t self:udp_socket create_socket_perms;
++
++ corenet_all_recvfrom_netlabel(apcupsd_cgi_script_t)
++ corenet_tcp_sendrecv_generic_if(apcupsd_cgi_script_t)
++ corenet_tcp_sendrecv_generic_node(apcupsd_cgi_script_t)
++ corenet_tcp_sendrecv_all_ports(apcupsd_cgi_script_t)
++ corenet_sendrecv_apcupsd_client_packets(apcupsd_cgi_script_t)
++ corenet_tcp_connect_apcupsd_port(apcupsd_cgi_script_t)
++ corenet_udp_sendrecv_generic_if(apcupsd_cgi_script_t)
++ corenet_udp_sendrecv_generic_node(apcupsd_cgi_script_t)
++ corenet_udp_sendrecv_all_ports(apcupsd_cgi_script_t)
++
++ sysnet_dns_name_resolve(apcupsd_cgi_script_t)
+ ')
diff --git a/apm.fc b/apm.fc
index ce27d2f..d20377e 100644
--- a/apm.fc
@@ -7974,11 +8161,43 @@ index b8355b3..844e45b 100644
userdom_dontaudit_use_unpriv_user_fds(avahi_t)
userdom_dontaudit_search_user_home_dirs(avahi_t)
+diff --git a/awstats.fc b/awstats.fc
+index 11e6d5f..73b4ea4 100644
+--- a/awstats.fc
++++ b/awstats.fc
+@@ -1,5 +1,5 @@
+ /usr/share/awstats/tools/.+\.pl -- gen_context(system_u:object_r:awstats_exec_t,s0)
+-/usr/share/awstats/wwwroot(/.*)? gen_context(system_u:object_r:httpd_awstats_content_t,s0)
+-/usr/share/awstats/wwwroot/cgi-bin(/.*)? gen_context(system_u:object_r:httpd_awstats_script_exec_t,s0)
++/usr/share/awstats/wwwroot(/.*)? gen_context(system_u:object_r:awstats_content_t,s0)
++/usr/share/awstats/wwwroot/cgi-bin(/.*)? gen_context(system_u:object_r:awstats_script_exec_t,s0)
+
+ /var/lib/awstats(/.*)? gen_context(system_u:object_r:awstats_var_lib_t,s0)
diff --git a/awstats.te b/awstats.te
-index c1b16c3..c222135 100644
+index c1b16c3..ffbf2cb 100644
--- a/awstats.te
+++ b/awstats.te
-@@ -52,8 +52,6 @@ corecmd_exec_shell(awstats_t)
+@@ -26,6 +26,7 @@ type awstats_var_lib_t;
+ files_type(awstats_var_lib_t)
+
+ apache_content_template(awstats)
++apache_content_alias_template(awstats, awstats)
+
+ ########################################
+ #
+@@ -40,9 +41,9 @@ files_tmp_filetrans(awstats_t, awstats_tmp_t, { dir file })
+
+ manage_files_pattern(awstats_t, awstats_var_lib_t, awstats_var_lib_t)
+
+-allow awstats_t { httpd_awstats_content_t httpd_awstats_script_exec_t }:dir search_dir_perms;
++allow awstats_t { awstats_content_t awstats_script_exec_t }:dir search_dir_perms;
+
+-can_exec(awstats_t, { awstats_exec_t httpd_awstats_script_exec_t })
++can_exec(awstats_t, { awstats_exec_t awstats_script_exec_t })
+
+ kernel_dontaudit_read_system_state(awstats_t)
+
+@@ -52,8 +53,6 @@ corecmd_exec_shell(awstats_t)
dev_read_urand(awstats_t)
files_dontaudit_search_all_mountpoints(awstats_t)
@@ -7987,7 +8206,7 @@ index c1b16c3..c222135 100644
fs_list_inotifyfs(awstats_t)
-@@ -61,8 +59,6 @@ libs_read_lib_files(awstats_t)
+@@ -61,8 +60,6 @@ libs_read_lib_files(awstats_t)
logging_read_generic_logs(awstats_t)
@@ -7996,22 +8215,24 @@ index c1b16c3..c222135 100644
sysnet_dns_name_resolve(awstats_t)
tunable_policy(`awstats_purge_apache_log_files',`
-@@ -90,9 +86,13 @@ optional_policy(`
+@@ -90,9 +87,13 @@ optional_policy(`
# CGI local policy
#
-+apache_read_log(httpd_awstats_script_t)
+-allow httpd_awstats_script_t awstats_var_lib_t:dir list_dir_perms;
++apache_read_log(awstats_script_t)
+
-+manage_dirs_pattern(httpd_awstats_script_t, awstats_tmp_t, awstats_tmp_t)
-+manage_files_pattern(httpd_awstats_script_t, awstats_tmp_t, awstats_tmp_t)
-+files_tmp_filetrans(httpd_awstats_script_t, awstats_tmp_t, { dir file })
-+
- allow httpd_awstats_script_t awstats_var_lib_t:dir list_dir_perms;
++manage_dirs_pattern(awstats_script_t, awstats_tmp_t, awstats_tmp_t)
++manage_files_pattern(awstats_script_t, awstats_tmp_t, awstats_tmp_t)
++files_tmp_filetrans(awstats_script_t, awstats_tmp_t, { dir file })
+
+-read_files_pattern(httpd_awstats_script_t, awstats_var_lib_t, awstats_var_lib_t)
+-files_search_var_lib(httpd_awstats_script_t)
++allow awstats_script_t awstats_var_lib_t:dir list_dir_perms;
- read_files_pattern(httpd_awstats_script_t, awstats_var_lib_t, awstats_var_lib_t)
- files_search_var_lib(httpd_awstats_script_t)
--
-apache_read_log(httpd_awstats_script_t)
++read_files_pattern(awstats_script_t, awstats_var_lib_t, awstats_var_lib_t)
++files_search_var_lib(awstats_script_t)
diff --git a/backup.te b/backup.te
index 7811450..d8a8bd6 100644
--- a/backup.te
@@ -9459,21 +9680,48 @@ index c5a9113..6ad8ccb 100644
xen_append_log(brctl_t)
xen_dontaudit_rw_unix_stream_sockets(brctl_t)
diff --git a/bugzilla.fc b/bugzilla.fc
-index fce0b6e..fb6e397 100644
+index fce0b6e..9efceac 100644
--- a/bugzilla.fc
+++ b/bugzilla.fc
@@ -1,4 +1,4 @@
-/usr/share/bugzilla(/.*)? -d gen_context(system_u:object_r:httpd_bugzilla_content_t,s0)
-/usr/share/bugzilla(/.*)? -- gen_context(system_u:object_r:httpd_bugzilla_script_exec_t,s0)
-+/usr/share/bugzilla(/.*)? gen_context(system_u:object_r:httpd_bugzilla_content_t,s0)
-+/usr/share/bugzilla/.*\.cgi -- gen_context(system_u:object_r:httpd_bugzilla_script_exec_t,s0)
++/usr/share/bugzilla(/.*)? gen_context(system_u:object_r:bugzilla_content_t,s0)
++/usr/share/bugzilla/.*\.cgi -- gen_context(system_u:object_r:bugzilla_script_exec_t,s0)
- /var/lib/bugzilla(/.*)? gen_context(system_u:object_r:httpd_bugzilla_rw_content_t,s0)
+-/var/lib/bugzilla(/.*)? gen_context(system_u:object_r:httpd_bugzilla_rw_content_t,s0)
++/var/lib/bugzilla(/.*)? gen_context(system_u:object_r:bugzilla_rw_content_t,s0)
diff --git a/bugzilla.if b/bugzilla.if
-index 1b22262..bf0cefa 100644
+index 1b22262..d9ea246 100644
--- a/bugzilla.if
+++ b/bugzilla.if
-@@ -48,24 +48,26 @@ interface(`bugzilla_dontaudit_rw_stream_sockets',`
+@@ -12,10 +12,10 @@
+ #
+ interface(`bugzilla_search_content',`
+ gen_require(`
+- type httpd_bugzilla_content_t;
++ type bugzilla_content_t;
+ ')
+
+- allow $1 httpd_bugzilla_content_t:dir search_dir_perms;
++ allow $1 bugzilla_content_t:dir search_dir_perms;
+ ')
+
+ ########################################
+@@ -32,10 +32,10 @@ interface(`bugzilla_search_content',`
+ #
+ interface(`bugzilla_dontaudit_rw_stream_sockets',`
+ gen_require(`
+- type httpd_bugzilla_script_t;
++ type bugzilla_script_t;
+ ')
+
+- dontaudit $1 httpd_bugzilla_script_t:unix_stream_socket { read write };
++ dontaudit $1 bugzilla_script_t:unix_stream_socket { read write };
+ ')
+
+ ########################################
+@@ -48,33 +48,37 @@ interface(`bugzilla_dontaudit_rw_stream_sockets',`
## Domain allowed access.
##
##
@@ -9486,32 +9734,44 @@ index 1b22262..bf0cefa 100644
#
interface(`bugzilla_admin',`
gen_require(`
- type httpd_bugzilla_script_t, httpd_bugzilla_content_t, httpd_bugzilla_ra_content_t;
- type httpd_bugzilla_rw_content_t, httpd_bugzilla_script_exec_t;
+- type httpd_bugzilla_script_t, httpd_bugzilla_content_t, httpd_bugzilla_ra_content_t;
+- type httpd_bugzilla_rw_content_t, httpd_bugzilla_script_exec_t;
- type httpd_bugzilla_htaccess_t;
-+ type httpd_bugzilla_htaccess_t, httpd_bugzilla_tmp_t;
++ type bugzilla_script_t, bugzilla_content_t, bugzilla_ra_content_t;
++ type bugzilla_rw_content_t, bugzilla_script_exec_t;
++ type bugzilla_htaccess_t, bugzilla_tmp_t;
++ ')
++
++ allow $1 bugzilla_script_t:process signal_perms;
++ ps_process_pattern($1, bugzilla_script_t)
++
++ tunable_policy(`deny_ptrace',`',`
++ allow $1 bugzilla_script_t:process ptrace;
')
- allow $1 httpd_bugzilla_script_t:process { ptrace signal_perms };
-+ allow $1 httpd_bugzilla_script_t:process signal_perms;
- ps_process_pattern($1, httpd_bugzilla_script_t)
+- ps_process_pattern($1, httpd_bugzilla_script_t)
++ files_list_tmp($1)
++ admin_pattern($1, bugzilla_tmp_t)
- files_search_usr($1)
-+ tunable_policy(`deny_ptrace',`',`
-+ allow $1 httpd_bugzilla_script_t:process ptrace;
-+ ')
-+
-+ files_list_tmp($1)
-+ admin_pattern($1, httpd_bugzilla_tmp_t)
-+
-+ files_list_var_lib(httpd_bugzilla_script_t)
-+
- admin_pattern($1, httpd_bugzilla_script_exec_t)
- admin_pattern($1, httpd_bugzilla_script_t)
- admin_pattern($1, httpd_bugzilla_content_t)
-@@ -76,5 +78,7 @@ interface(`bugzilla_admin',`
+- admin_pattern($1, httpd_bugzilla_script_exec_t)
+- admin_pattern($1, httpd_bugzilla_script_t)
+- admin_pattern($1, httpd_bugzilla_content_t)
+- admin_pattern($1, httpd_bugzilla_htaccess_t)
+- admin_pattern($1, httpd_bugzilla_ra_content_t)
++ files_list_var_lib(bugzilla_script_t)
++
++ admin_pattern($1, bugzilla_script_exec_t)
++ admin_pattern($1, bugzilla_script_t)
++ admin_pattern($1, bugzilla_content_t)
++ admin_pattern($1, bugzilla_htaccess_t)
++ admin_pattern($1, bugzilla_ra_content_t)
+
+ files_search_tmp($1)
files_search_var_lib($1)
- admin_pattern($1, httpd_bugzilla_rw_content_t)
+- admin_pattern($1, httpd_bugzilla_rw_content_t)
++ admin_pattern($1, bugzilla_rw_content_t)
- apache_list_sys_content($1)
+ optional_policy(`
@@ -9519,49 +9779,83 @@ index 1b22262..bf0cefa 100644
+ ')
')
diff --git a/bugzilla.te b/bugzilla.te
-index 18623e3..d9f3061 100644
+index 18623e3..c62f617 100644
--- a/bugzilla.te
+++ b/bugzilla.te
-@@ -7,6 +7,9 @@ policy_module(bugzilla, 1.1.0)
+@@ -6,42 +6,55 @@ policy_module(bugzilla, 1.1.0)
+ #
apache_content_template(bugzilla)
-
-+type httpd_bugzilla_tmp_t;
-+files_tmp_file(httpd_bugzilla_tmp_t)
++apache_content_alias_template(bugzilla, bugzilla)
+
++type bugzilla_tmp_t alias httpd_bugzilla_tmp_t;
++files_tmp_file(bugzilla_tmp_t)
+
########################################
#
# Local policy
-@@ -14,7 +17,6 @@ apache_content_template(bugzilla)
+ #
- allow httpd_bugzilla_script_t self:tcp_socket { accept listen };
+-allow httpd_bugzilla_script_t self:tcp_socket { accept listen };
++allow bugzilla_script_t self:tcp_socket { accept listen };
++
++corenet_all_recvfrom_netlabel(bugzilla_script_t)
++corenet_tcp_sendrecv_generic_if(bugzilla_script_t)
++corenet_tcp_sendrecv_generic_node(bugzilla_script_t)
++
++corenet_sendrecv_http_client_packets(bugzilla_script_t)
++corenet_tcp_connect_http_port(bugzilla_script_t)
++corenet_tcp_sendrecv_http_port(bugzilla_script_t)
++
++corenet_sendrecv_smtp_client_packets(bugzilla_script_t)
++corenet_tcp_connect_smtp_port(bugzilla_script_t)
++corenet_tcp_sendrecv_smtp_port(bugzilla_script_t)
++
++manage_dirs_pattern(bugzilla_script_t, bugzilla_tmp_t, bugzilla_tmp_t)
++manage_files_pattern(bugzilla_script_t, bugzilla_tmp_t, bugzilla_tmp_t)
++files_tmp_filetrans(bugzilla_script_t, bugzilla_tmp_t, { file dir })
-corenet_all_recvfrom_unlabeled(httpd_bugzilla_script_t)
- corenet_all_recvfrom_netlabel(httpd_bugzilla_script_t)
- corenet_tcp_sendrecv_generic_if(httpd_bugzilla_script_t)
- corenet_tcp_sendrecv_generic_node(httpd_bugzilla_script_t)
-@@ -27,11 +29,21 @@ corenet_sendrecv_smtp_client_packets(httpd_bugzilla_script_t)
- corenet_tcp_connect_smtp_port(httpd_bugzilla_script_t)
- corenet_tcp_sendrecv_smtp_port(httpd_bugzilla_script_t)
+-corenet_all_recvfrom_netlabel(httpd_bugzilla_script_t)
+-corenet_tcp_sendrecv_generic_if(httpd_bugzilla_script_t)
+-corenet_tcp_sendrecv_generic_node(httpd_bugzilla_script_t)
++files_search_var_lib(bugzilla_script_t)
-+manage_dirs_pattern(httpd_bugzilla_script_t, httpd_bugzilla_tmp_t, httpd_bugzilla_tmp_t)
-+manage_files_pattern(httpd_bugzilla_script_t, httpd_bugzilla_tmp_t, httpd_bugzilla_tmp_t)
-+files_tmp_filetrans(httpd_bugzilla_script_t, httpd_bugzilla_tmp_t, { file dir })
-+
- files_search_var_lib(httpd_bugzilla_script_t)
+-corenet_sendrecv_http_client_packets(httpd_bugzilla_script_t)
+-corenet_tcp_connect_http_port(httpd_bugzilla_script_t)
+-corenet_tcp_sendrecv_http_port(httpd_bugzilla_script_t)
++auth_read_passwd(bugzilla_script_t)
+
+-corenet_sendrecv_smtp_client_packets(httpd_bugzilla_script_t)
+-corenet_tcp_connect_smtp_port(httpd_bugzilla_script_t)
+-corenet_tcp_sendrecv_smtp_port(httpd_bugzilla_script_t)
++dev_read_sysfs(bugzilla_script_t)
+
+-files_search_var_lib(httpd_bugzilla_script_t)
++sysnet_read_config(bugzilla_script_t)
++sysnet_use_ldap(bugzilla_script_t)
-sysnet_dns_name_resolve(httpd_bugzilla_script_t)
-+auth_read_passwd(httpd_bugzilla_script_t)
-+
-+dev_read_sysfs(httpd_bugzilla_script_t)
-+
-+sysnet_read_config(httpd_bugzilla_script_t)
- sysnet_use_ldap(httpd_bugzilla_script_t)
+-sysnet_use_ldap(httpd_bugzilla_script_t)
++miscfiles_read_certs(bugzilla_script_t)
+
+ optional_policy(`
+- mta_send_mail(httpd_bugzilla_script_t)
++ mta_send_mail(bugzilla_script_t)
+ ')
+
+ optional_policy(`
+- mysql_stream_connect(httpd_bugzilla_script_t)
+- mysql_tcp_connect(httpd_bugzilla_script_t)
++ mysql_stream_connect(bugzilla_script_t)
++ mysql_tcp_connect(bugzilla_script_t)
+ ')
-+miscfiles_read_certs(httpd_bugzilla_script_t)
-+
optional_policy(`
- mta_send_mail(httpd_bugzilla_script_t)
+- postgresql_stream_connect(httpd_bugzilla_script_t)
+- postgresql_tcp_connect(httpd_bugzilla_script_t)
++ postgresql_stream_connect(bugzilla_script_t)
++ postgresql_tcp_connect(bugzilla_script_t)
')
diff --git a/bumblebee.fc b/bumblebee.fc
new file mode 100644
@@ -9578,10 +9872,10 @@ index 0000000..b5ee23b
+/var/run/bumblebee.* gen_context(system_u:object_r:bumblebee_var_run_t,s0)
diff --git a/bumblebee.if b/bumblebee.if
new file mode 100644
-index 0000000..23a4f86
+index 0000000..de66654
--- /dev/null
+++ b/bumblebee.if
-@@ -0,0 +1,126 @@
+@@ -0,0 +1,121 @@
+## policy for bumblebee
+
+########################################
@@ -9675,11 +9969,6 @@ index 0000000..23a4f86
+## Domain allowed access.
+##
+##
-+##
-+##
-+## Role allowed access.
-+##
-+##
+##
+#
+interface(`bumblebee_admin',`
@@ -10323,7 +10612,7 @@ index 008f8ef..144c074 100644
admin_pattern($1, certmonger_var_run_t)
')
diff --git a/certmonger.te b/certmonger.te
-index 550b287..6e8a513 100644
+index 550b287..7124d87 100644
--- a/certmonger.te
+++ b/certmonger.te
@@ -18,6 +18,9 @@ files_type(certmonger_var_lib_t)
@@ -10390,9 +10679,10 @@ index 550b287..6e8a513 100644
-miscfiles_read_localization(certmonger_t)
miscfiles_manage_generic_cert_files(certmonger_t)
+-userdom_search_user_home_content(certmonger_t)
+systemd_exec_systemctl(certmonger_t)
+
- userdom_search_user_home_content(certmonger_t)
++userdom_manage_home_certs(certmonger_t)
optional_policy(`
- apache_initrc_domtrans(certmonger_t)
@@ -10425,7 +10715,7 @@ index 550b287..6e8a513 100644
+
+optional_policy(`
+ pki_rw_tomcat_cert(certmonger_t)
-+ pki_read_tomcat_lib_files(certmonger_t)
++ pki_read_tomcat_lib_files(certmonger_t)
+')
+
+########################################
@@ -10665,7 +10955,7 @@ index 85ca63f..1d1c99c 100644
admin_pattern($1, { cgconfig_etc_t cgrules_etc_t })
files_list_etc($1)
diff --git a/cgroup.te b/cgroup.te
-index 80a88a2..1a33de9 100644
+index 80a88a2..f947039 100644
--- a/cgroup.te
+++ b/cgroup.te
@@ -25,8 +25,8 @@ files_pid_file(cgred_var_run_t)
@@ -10718,13 +11008,15 @@ index 80a88a2..1a33de9 100644
allow cgred_t self:netlink_socket { write bind create read };
allow cgred_t self:unix_dgram_socket { write create connect };
-@@ -99,10 +102,10 @@ domain_setpriority_all_domains(cgred_t)
+@@ -99,10 +102,11 @@ domain_setpriority_all_domains(cgred_t)
files_getattr_all_files(cgred_t)
files_getattr_all_sockets(cgred_t)
files_read_all_symlinks(cgred_t)
-files_read_etc_files(cgred_t)
- fs_write_cgroup_files(cgred_t)
+-fs_write_cgroup_files(cgred_t)
++fs_manage_cgroup_dirs(cgred_t)
++fs_manage_cgroup_files(cgred_t)
+fs_list_inotifyfs(cgred_t)
-logging_send_syslog_msg(cgred_t)
@@ -12406,7 +12698,7 @@ index c223f81..8b567c1 100644
- admin_pattern($1, { httpd_cobbler_content_t httpd_cobbler_content_ra_t httpd_cobbler_content_rw_t })
')
diff --git a/cobbler.te b/cobbler.te
-index 5f306dd..9a5087b 100644
+index 5f306dd..e01156f 100644
--- a/cobbler.te
+++ b/cobbler.te
@@ -81,6 +81,7 @@ manage_dirs_pattern(cobblerd_t, cobbler_var_lib_t, cobbler_var_lib_t)
@@ -12455,23 +12747,42 @@ index 5f306dd..9a5087b 100644
')
optional_policy(`
-+ apache_domtrans(cobblerd_t)
++ apache_domtrans(cobblerd_t)
apache_search_sys_content(cobblerd_t)
')
-@@ -188,17 +191,25 @@ optional_policy(`
+@@ -170,6 +173,7 @@ optional_policy(`
+ bind_domtrans(cobblerd_t)
+ bind_initrc_domtrans(cobblerd_t)
+ bind_manage_zone(cobblerd_t)
++ bind_systemctl(cobblerd_t)
')
optional_policy(`
-+ libs_exec_ldconfig(cobblerd_t)
+@@ -179,12 +183,22 @@ optional_policy(`
+ optional_policy(`
+ dhcpd_domtrans(cobblerd_t)
+ dhcpd_initrc_domtrans(cobblerd_t)
++ dhcpd_systemctl(cobblerd_t)
+ ')
+
+ optional_policy(`
+ dnsmasq_domtrans(cobblerd_t)
+ dnsmasq_initrc_domtrans(cobblerd_t)
+ dnsmasq_write_config(cobblerd_t)
++ dnsmasq_systemctl(cobblerd_t)
+')
+
+optional_policy(`
-+ mysql_stream_connect(cobblerd_t)
++ libs_exec_ldconfig(cobblerd_t)
+')
+
+optional_policy(`
- rpm_exec(cobblerd_t)
++ mysql_stream_connect(cobblerd_t)
+ ')
+
+ optional_policy(`
+@@ -192,13 +206,13 @@ optional_policy(`
')
optional_policy(`
@@ -12489,10 +12800,10 @@ index 5f306dd..9a5087b 100644
tftp_filetrans_tftpdir(cobblerd_t, cobbler_var_lib_t, { dir file })
')
diff --git a/collectd.fc b/collectd.fc
-index 79a3abe..2e7d7ed 100644
+index 79a3abe..8d70290 100644
--- a/collectd.fc
+++ b/collectd.fc
-@@ -1,5 +1,7 @@
+@@ -1,9 +1,11 @@
/etc/rc\.d/init\.d/collectd -- gen_context(system_u:object_r:collectd_initrc_exec_t,s0)
+/usr/lib/systemd/system/collectd.* -- gen_context(system_u:object_r:collectd_unit_file_t,s0)
@@ -12500,6 +12811,11 @@ index 79a3abe..2e7d7ed 100644
/usr/sbin/collectd -- gen_context(system_u:object_r:collectd_exec_t,s0)
/var/lib/collectd(/.*)? gen_context(system_u:object_r:collectd_var_lib_t,s0)
+
+ /var/run/collectd\.pid -- gen_context(system_u:object_r:collectd_var_run_t,s0)
+
+-/usr/share/collectd/collection3/bin/.*\.cgi -- gen_context(system_u:object_r:httpd_collectd_script_exec_t,s0)
++/usr/share/collectd/collection3/bin/.*\.cgi -- gen_context(system_u:object_r:collectd_script_exec_t,s0)
diff --git a/collectd.if b/collectd.if
index 954309e..f4db2ca 100644
--- a/collectd.if
@@ -12683,10 +12999,10 @@ index 954309e..f4db2ca 100644
')
+
diff --git a/collectd.te b/collectd.te
-index 6471fa8..dc0423c 100644
+index 6471fa8..d078b96 100644
--- a/collectd.te
+++ b/collectd.te
-@@ -26,8 +26,14 @@ files_type(collectd_var_lib_t)
+@@ -26,7 +26,14 @@ files_type(collectd_var_lib_t)
type collectd_var_run_t;
files_pid_file(collectd_var_run_t)
@@ -12694,14 +13010,14 @@ index 6471fa8..dc0423c 100644
+systemd_unit_file(collectd_unit_file_t)
+
apache_content_template(collectd)
-
-+type httpd_collectd_script_tmp_t;
-+files_tmp_file(httpd_collectd_script_tmp_t)
++apache_content_alias_template(collectd, collectd)
+
++type collectd_script_tmp_t alias httpd_collectd_script_tmp_t;
++files_tmp_file(collectd_script_tmp_t)
+
########################################
#
- # Local policy
-@@ -38,6 +44,9 @@ allow collectd_t self:process { getsched setsched signal };
+@@ -38,6 +45,9 @@ allow collectd_t self:process { getsched setsched signal };
allow collectd_t self:fifo_file rw_fifo_file_perms;
allow collectd_t self:packet_socket create_socket_perms;
allow collectd_t self:unix_stream_socket { accept listen };
@@ -12711,7 +13027,7 @@ index 6471fa8..dc0423c 100644
manage_dirs_pattern(collectd_t, collectd_var_lib_t, collectd_var_lib_t)
manage_files_pattern(collectd_t, collectd_var_lib_t, collectd_var_lib_t)
-@@ -46,23 +55,28 @@ files_var_lib_filetrans(collectd_t, collectd_var_lib_t, dir)
+@@ -46,23 +56,28 @@ files_var_lib_filetrans(collectd_t, collectd_var_lib_t, dir)
manage_files_pattern(collectd_t, collectd_var_run_t, collectd_var_run_t)
files_pid_filetrans(collectd_t, collectd_var_run_t, file)
@@ -12747,7 +13063,7 @@ index 6471fa8..dc0423c 100644
logging_send_syslog_msg(collectd_t)
-@@ -75,16 +89,26 @@ tunable_policy(`collectd_tcp_network_connect',`
+@@ -75,16 +90,26 @@ tunable_policy(`collectd_tcp_network_connect',`
')
optional_policy(`
@@ -12770,16 +13086,16 @@ index 6471fa8..dc0423c 100644
- miscfiles_setattr_fonts_cache_dirs(httpd_collectd_script_t)
-')
+
-+files_search_var_lib(httpd_collectd_script_t)
-+read_files_pattern(httpd_collectd_script_t, collectd_var_lib_t, collectd_var_lib_t)
-+list_dirs_pattern(httpd_collectd_script_t, collectd_var_lib_t, collectd_var_lib_t)
-+miscfiles_setattr_fonts_cache_dirs(httpd_collectd_script_t)
++files_search_var_lib(collectd_script_t)
++read_files_pattern(collectd_script_t, collectd_var_lib_t, collectd_var_lib_t)
++list_dirs_pattern(collectd_script_t, collectd_var_lib_t, collectd_var_lib_t)
++miscfiles_setattr_fonts_cache_dirs(collectd_script_t)
+
-+manage_dirs_pattern(httpd_collectd_script_t, httpd_collectd_script_tmp_t, httpd_collectd_script_tmp_t)
-+manage_files_pattern(httpd_collectd_script_t, httpd_collectd_script_tmp_t, httpd_collectd_script_tmp_t)
-+files_tmp_filetrans(httpd_collectd_script_t, httpd_collectd_script_tmp_t, { file dir })
++manage_dirs_pattern(collectd_script_t, collectd_script_tmp_t, collectd_script_tmp_t)
++manage_files_pattern(collectd_script_t, collectd_script_tmp_t, collectd_script_tmp_t)
++files_tmp_filetrans(collectd_script_t, collectd_script_tmp_t, { file dir })
+
-+auth_read_passwd(httpd_collectd_script_t)
++auth_read_passwd(collectd_script_t)
diff --git a/colord.fc b/colord.fc
index 71639eb..08ab891 100644
--- a/colord.fc
@@ -16015,7 +16331,7 @@ index 1303b30..72481a7 100644
+ logging_log_filetrans($1, cron_log_t, $2, $3)
')
diff --git a/cron.te b/cron.te
-index 7de3859..c4abac0 100644
+index 7de3859..d8264c4 100644
--- a/cron.te
+++ b/cron.te
@@ -11,46 +11,46 @@ gen_require(`
@@ -16662,7 +16978,7 @@ index 7de3859..c4abac0 100644
selinux_validate_context(system_cronjob_t)
selinux_compute_access_vector(system_cronjob_t)
selinux_compute_create_context(system_cronjob_t)
-@@ -539,10 +531,17 @@ tunable_policy(`cron_can_relabel',`
+@@ -539,10 +531,18 @@ tunable_policy(`cron_can_relabel',`
')
optional_policy(`
@@ -16671,6 +16987,7 @@ index 7de3859..c4abac0 100644
apache_read_config(system_cronjob_t)
apache_read_log(system_cronjob_t)
apache_read_sys_content(system_cronjob_t)
++ apache_manage_lib(system_cronjob_t)
+ apache_delete_cache_dirs(system_cronjob_t)
+ apache_delete_cache_files(system_cronjob_t)
+')
@@ -16680,7 +16997,7 @@ index 7de3859..c4abac0 100644
')
optional_policy(`
-@@ -551,10 +550,6 @@ optional_policy(`
+@@ -551,10 +551,6 @@ optional_policy(`
optional_policy(`
dbus_system_bus_client(system_cronjob_t)
@@ -16691,7 +17008,7 @@ index 7de3859..c4abac0 100644
')
optional_policy(`
-@@ -591,6 +586,7 @@ optional_policy(`
+@@ -591,6 +587,7 @@ optional_policy(`
optional_policy(`
mta_read_config(system_cronjob_t)
mta_send_mail(system_cronjob_t)
@@ -16699,7 +17016,7 @@ index 7de3859..c4abac0 100644
')
optional_policy(`
-@@ -598,7 +594,19 @@ optional_policy(`
+@@ -598,7 +595,19 @@ optional_policy(`
')
optional_policy(`
@@ -16719,7 +17036,7 @@ index 7de3859..c4abac0 100644
')
optional_policy(`
-@@ -608,6 +616,7 @@ optional_policy(`
+@@ -608,6 +617,7 @@ optional_policy(`
optional_policy(`
spamassassin_manage_lib_files(system_cronjob_t)
@@ -16727,7 +17044,7 @@ index 7de3859..c4abac0 100644
')
optional_policy(`
-@@ -615,12 +624,24 @@ optional_policy(`
+@@ -615,12 +625,24 @@ optional_policy(`
')
optional_policy(`
@@ -16754,7 +17071,7 @@ index 7de3859..c4abac0 100644
#
allow cronjob_t self:process { signal_perms setsched };
-@@ -628,12 +649,32 @@ allow cronjob_t self:fifo_file rw_fifo_file_perms;
+@@ -628,12 +650,32 @@ allow cronjob_t self:fifo_file rw_fifo_file_perms;
allow cronjob_t self:unix_stream_socket create_stream_socket_perms;
allow cronjob_t self:unix_dgram_socket create_socket_perms;
@@ -16788,7 +17105,7 @@ index 7de3859..c4abac0 100644
corenet_all_recvfrom_netlabel(cronjob_t)
corenet_tcp_sendrecv_generic_if(cronjob_t)
corenet_udp_sendrecv_generic_if(cronjob_t)
-@@ -641,66 +682,138 @@ corenet_tcp_sendrecv_generic_node(cronjob_t)
+@@ -641,66 +683,138 @@ corenet_tcp_sendrecv_generic_node(cronjob_t)
corenet_udp_sendrecv_generic_node(cronjob_t)
corenet_tcp_sendrecv_all_ports(cronjob_t)
corenet_udp_sendrecv_all_ports(cronjob_t)
@@ -18258,8 +18575,31 @@ index c91813c..f31fa44 100644
udev_read_db(ptal_t)
')
+
+diff --git a/cvs.fc b/cvs.fc
+index 75c8be9..4c1a965 100644
+--- a/cvs.fc
++++ b/cvs.fc
+@@ -1,13 +1,16 @@
++HOME_DIR/\.cvsignore -- gen_context(system_u:object_r:cvs_home_t,s0)
++/root/\.cvsignore -- gen_context(system_u:object_r:cvs_home_t,s0)
++
+ /etc/rc\.d/init\.d/cvs -- gen_context(system_u:object_r:cvs_initrc_exec_t,s0)
+
+ /opt/cvs(/.*)? gen_context(system_u:object_r:cvs_data_t,s0)
+
+ /usr/bin/cvs -- gen_context(system_u:object_r:cvs_exec_t,s0)
+
+-/usr/share/cvsweb/cvsweb\.cgi -- gen_context(system_u:object_r:httpd_cvs_script_exec_t,s0)
++/usr/share/cvsweb/cvsweb\.cgi -- gen_context(system_u:object_r:cvs_script_exec_t,s0)
+
+ /var/cvs(/.*)? gen_context(system_u:object_r:cvs_data_t,s0)
+
+ /var/run/cvs\.pid -- gen_context(system_u:object_r:cvs_var_run_t,s0)
+
+-/var/www/cgi-bin/cvsweb\.cgi -- gen_context(system_u:object_r:httpd_cvs_script_exec_t,s0)
++/var/www/cgi-bin/cvsweb\.cgi -- gen_context(system_u:object_r:cvs_script_exec_t,s0)
diff --git a/cvs.if b/cvs.if
-index 64775fd..bff3111 100644
+index 64775fd..91a6056 100644
--- a/cvs.if
+++ b/cvs.if
@@ -1,5 +1,23 @@
@@ -18286,8 +18626,36 @@ index 64775fd..bff3111 100644
########################################
##
## Read CVS data and metadata content.
-@@ -62,9 +80,14 @@ interface(`cvs_admin',`
+@@ -41,6 +59,24 @@ interface(`cvs_exec',`
+
+ ########################################
+ ##
++## Transition to cvs named content
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`cvs_filetrans_home_content',`
++ gen_require(`
++ type cvs_home_t;
++ ')
++
++ userdom_user_home_dir_filetrans($1, cvs_home_t, file, ".cvsignore")
++')
++
++########################################
++##
+ ## All of the rules required to
+ ## administrate an cvs environment
+ ##
+@@ -60,11 +96,17 @@ interface(`cvs_admin',`
+ gen_require(`
+ type cvs_t, cvs_tmp_t, cvs_initrc_exec_t;
type cvs_data_t, cvs_var_run_t, cvs_keytab_t;
++ type cvs_home_t;
')
- allow $1 cvs_t:process { ptrace signal_perms };
@@ -18302,8 +18670,16 @@ index 64775fd..bff3111 100644
init_labeled_script_domtrans($1, cvs_initrc_exec_t)
domain_system_change_exemption($1)
role_transition $2 cvs_initrc_exec_t system_r;
+@@ -81,4 +123,7 @@ interface(`cvs_admin',`
+
+ files_list_pids($1)
+ admin_pattern($1, cvs_var_run_t)
++
++ userdom_search_user_home_dirs($1)
++ admin_pattern($1, cvs_home_t)
+ ')
diff --git a/cvs.te b/cvs.te
-index 0f77550..f98a932 100644
+index 0f77550..cd608bc 100644
--- a/cvs.te
+++ b/cvs.te
@@ -11,7 +11,7 @@ policy_module(cvs, 1.10.2)
@@ -18315,7 +18691,32 @@ index 0f77550..f98a932 100644
type cvs_t;
type cvs_exec_t;
-@@ -74,6 +74,15 @@ corenet_tcp_sendrecv_cvs_port(cvs_t)
+@@ -34,17 +34,23 @@ files_tmp_file(cvs_tmp_t)
+ type cvs_var_run_t;
+ files_pid_file(cvs_var_run_t)
+
++type cvs_home_t;
++userdom_user_home_content(cvs_home_t)
++
+ ########################################
+ #
+ # Local policy
+ #
+
+-allow cvs_t self:capability { setuid setgid };
++allow cvs_t self:capability { dac_override dac_read_search setuid setgid };
+ allow cvs_t self:process signal_perms;
+ allow cvs_t self:fifo_file rw_fifo_file_perms;
+ allow cvs_t self:netlink_tcpdiag_socket r_netlink_socket_perms;
+ allow cvs_t self:tcp_socket { accept listen };
+
++userdom_search_user_home_dirs(cvs_t)
++allow cvs_t cvs_home_t:file read_file_perms;
++
+ manage_dirs_pattern(cvs_t, cvs_data_t, cvs_data_t)
+ manage_files_pattern(cvs_t, cvs_data_t, cvs_data_t)
+ manage_lnk_files_pattern(cvs_t, cvs_data_t, cvs_data_t)
+@@ -74,6 +80,15 @@ corenet_tcp_sendrecv_cvs_port(cvs_t)
corecmd_exec_bin(cvs_t)
corecmd_exec_shell(cvs_t)
@@ -18331,7 +18732,7 @@ index 0f77550..f98a932 100644
dev_read_urand(cvs_t)
files_read_etc_runtime_files(cvs_t)
-@@ -86,18 +95,18 @@ auth_use_nsswitch(cvs_t)
+@@ -86,18 +101,16 @@ auth_use_nsswitch(cvs_t)
init_read_utmp(cvs_t)
@@ -18344,8 +18745,8 @@ index 0f77550..f98a932 100644
-
mta_send_mail(cvs_t)
- userdom_dontaudit_search_user_home_dirs(cvs_t)
-
+-userdom_dontaudit_search_user_home_dirs(cvs_t)
+-
# cjp: typeattribute doesnt work in conditionals yet
auth_can_read_shadow_passwords(cvs_t)
-tunable_policy(`allow_cvs_read_shadow',`
@@ -18353,11 +18754,19 @@ index 0f77550..f98a932 100644
allow cvs_t self:capability dac_override;
auth_tunable_read_shadow(cvs_t)
')
-@@ -120,4 +129,5 @@ optional_policy(`
- read_files_pattern(httpd_cvs_script_t, cvs_data_t, cvs_data_t)
- manage_dirs_pattern(httpd_cvs_script_t, cvs_tmp_t, cvs_tmp_t)
- manage_files_pattern(httpd_cvs_script_t, cvs_tmp_t, cvs_tmp_t)
-+ files_tmp_filetrans(httpd_cvs_script_t, cvs_tmp_t, { file dir })
+@@ -116,8 +129,10 @@ optional_policy(`
+
+ optional_policy(`
+ apache_content_template(cvs)
++ apache_content_alias_template(cvs, cvs)
+
+- read_files_pattern(httpd_cvs_script_t, cvs_data_t, cvs_data_t)
+- manage_dirs_pattern(httpd_cvs_script_t, cvs_tmp_t, cvs_tmp_t)
+- manage_files_pattern(httpd_cvs_script_t, cvs_tmp_t, cvs_tmp_t)
++ read_files_pattern(cvs_script_t, cvs_data_t, cvs_data_t)
++ manage_dirs_pattern(cvs_script_t, cvs_tmp_t, cvs_tmp_t)
++ manage_files_pattern(cvs_script_t, cvs_tmp_t, cvs_tmp_t)
++ files_tmp_filetrans(cvs_script_t, cvs_tmp_t, { file dir })
')
diff --git a/cyphesis.te b/cyphesis.te
index 77ffc73..86e11f5 100644
@@ -20871,7 +21280,7 @@ index b3b2188..5f91705 100644
miscfiles_read_localization(dirmngr_t)
diff --git a/dirsrv-admin.fc b/dirsrv-admin.fc
new file mode 100644
-index 0000000..8c44697
+index 0000000..5e44c5e
--- /dev/null
+++ b/dirsrv-admin.fc
@@ -0,0 +1,15 @@
@@ -20883,8 +21292,8 @@ index 0000000..8c44697
+/usr/sbin/start-ds-admin -- gen_context(system_u:object_r:dirsrvadmin_exec_t,s0)
+/usr/sbin/stop-ds-admin -- gen_context(system_u:object_r:dirsrvadmin_exec_t,s0)
+
-+/usr/lib/dirsrv/cgi-bin(/.*)? gen_context(system_u:object_r:httpd_dirsrvadmin_script_exec_t,s0)
-+/usr/lib/dirsrv/dsgw-cgi-bin(/.*)? gen_context(system_u:object_r:httpd_dirsrvadmin_script_exec_t,s0)
++/usr/lib/dirsrv/cgi-bin(/.*)? gen_context(system_u:object_r:dirsrvadmin_script_exec_t,s0)
++/usr/lib/dirsrv/dsgw-cgi-bin(/.*)? gen_context(system_u:object_r:dirsrvadmin_script_exec_t,s0)
+
+/usr/lib/dirsrv/cgi-bin/ds_create -- gen_context(system_u:object_r:dirsrvadmin_unconfined_script_exec_t,s0)
+/usr/lib/dirsrv/cgi-bin/ds_remove -- gen_context(system_u:object_r:dirsrvadmin_unconfined_script_exec_t,s0)
@@ -20892,7 +21301,7 @@ index 0000000..8c44697
+/var/lock/subsys/dirsrv-admin -- gen_context(system_u:object_r:dirsrvadmin_lock_t,s0)
diff --git a/dirsrv-admin.if b/dirsrv-admin.if
new file mode 100644
-index 0000000..30416f2
+index 0000000..e360d38
--- /dev/null
+++ b/dirsrv-admin.if
@@ -0,0 +1,133 @@
@@ -20927,13 +21336,13 @@ index 0000000..30416f2
+##
+##
+#
-+interface(`dirsrvadmin_run_httpd_script_exec',`
++interface(`dirsrvadmin_run_script_exec',`
+ gen_require(`
-+ type httpd_dirsrvadmin_script_exec_t;
++ type dirsrvadmin_script_exec_t;
+ ')
+
-+ allow $1 httpd_dirsrvadmin_script_exec_t:dir search_dir_perms;
-+ can_exec($1, httpd_dirsrvadmin_script_exec_t)
++ allow $1 dirsrvadmin_script_exec_t:dir search_dir_perms;
++ can_exec($1, dirsrvadmin_script_exec_t)
+')
+
+########################################
@@ -21031,10 +21440,10 @@ index 0000000..30416f2
+')
diff --git a/dirsrv-admin.te b/dirsrv-admin.te
new file mode 100644
-index 0000000..021c5ae
+index 0000000..37afbd4
--- /dev/null
+++ b/dirsrv-admin.te
-@@ -0,0 +1,157 @@
+@@ -0,0 +1,158 @@
+policy_module(dirsrv-admin,1.0.0)
+
+########################################
@@ -21107,59 +21516,60 @@ index 0000000..021c5ae
+
+optional_policy(`
+ apache_content_template(dirsrvadmin)
++ apache_content_alias_template(dirsrvadmin, dirsrvadmin)
+
-+ allow httpd_dirsrvadmin_script_t self:process { getsched getpgid };
-+ allow httpd_dirsrvadmin_script_t self:capability { fowner fsetid setuid net_bind_service setgid chown sys_nice kill dac_read_search dac_override };
-+ allow httpd_dirsrvadmin_script_t self:tcp_socket create_stream_socket_perms;
-+ allow httpd_dirsrvadmin_script_t self:udp_socket create_socket_perms;
-+ allow httpd_dirsrvadmin_script_t self:unix_dgram_socket create_socket_perms;
-+ allow httpd_dirsrvadmin_script_t self:netlink_route_socket r_netlink_socket_perms;
-+ allow httpd_dirsrvadmin_script_t self:sem create_sem_perms;
++ allow dirsrvadmin_script_t self:process { getsched getpgid };
++ allow dirsrvadmin_script_t self:capability { fowner fsetid setuid net_bind_service setgid chown sys_nice kill dac_read_search dac_override };
++ allow dirsrvadmin_script_t self:tcp_socket create_stream_socket_perms;
++ allow dirsrvadmin_script_t self:udp_socket create_socket_perms;
++ allow dirsrvadmin_script_t self:unix_dgram_socket create_socket_perms;
++ allow dirsrvadmin_script_t self:netlink_route_socket r_netlink_socket_perms;
++ allow dirsrvadmin_script_t self:sem create_sem_perms;
+
+
-+ manage_files_pattern(httpd_dirsrvadmin_script_t, dirsrvadmin_lock_t, dirsrvadmin_lock_t)
-+ files_lock_filetrans(httpd_dirsrvadmin_script_t, dirsrvadmin_lock_t, { file })
++ manage_files_pattern(dirsrvadmin_script_t, dirsrvadmin_lock_t, dirsrvadmin_lock_t)
++ files_lock_filetrans(dirsrvadmin_script_t, dirsrvadmin_lock_t, { file })
+
-+ kernel_read_kernel_sysctls(httpd_dirsrvadmin_script_t)
++ kernel_read_kernel_sysctls(dirsrvadmin_script_t)
+
+
-+ corenet_tcp_bind_generic_node(httpd_dirsrvadmin_script_t)
-+ corenet_udp_bind_generic_node(httpd_dirsrvadmin_script_t)
-+ corenet_all_recvfrom_netlabel(httpd_dirsrvadmin_script_t)
++ corenet_tcp_bind_generic_node(dirsrvadmin_script_t)
++ corenet_udp_bind_generic_node(dirsrvadmin_script_t)
++ corenet_all_recvfrom_netlabel(dirsrvadmin_script_t)
+
-+ corenet_tcp_bind_http_port(httpd_dirsrvadmin_script_t)
-+ corenet_tcp_connect_generic_port(httpd_dirsrvadmin_script_t)
-+ corenet_tcp_connect_ldap_port(httpd_dirsrvadmin_script_t)
-+ corenet_tcp_connect_http_port(httpd_dirsrvadmin_script_t)
++ corenet_tcp_bind_http_port(dirsrvadmin_script_t)
++ corenet_tcp_connect_generic_port(dirsrvadmin_script_t)
++ corenet_tcp_connect_ldap_port(dirsrvadmin_script_t)
++ corenet_tcp_connect_http_port(dirsrvadmin_script_t)
+
-+ files_search_var_lib(httpd_dirsrvadmin_script_t)
++ files_search_var_lib(dirsrvadmin_script_t)
+
-+ sysnet_read_config(httpd_dirsrvadmin_script_t)
++ sysnet_read_config(dirsrvadmin_script_t)
+
-+ manage_files_pattern(httpd_dirsrvadmin_script_t, dirsrvadmin_tmp_t, dirsrvadmin_tmp_t)
-+ manage_dirs_pattern(httpd_dirsrvadmin_script_t, dirsrvadmin_tmp_t, dirsrvadmin_tmp_t)
-+ files_tmp_filetrans(httpd_dirsrvadmin_script_t, dirsrvadmin_tmp_t, { file dir })
++ manage_files_pattern(dirsrvadmin_script_t, dirsrvadmin_tmp_t, dirsrvadmin_tmp_t)
++ manage_dirs_pattern(dirsrvadmin_script_t, dirsrvadmin_tmp_t, dirsrvadmin_tmp_t)
++ files_tmp_filetrans(dirsrvadmin_script_t, dirsrvadmin_tmp_t, { file dir })
+
+ optional_policy(`
-+ apache_read_modules(httpd_dirsrvadmin_script_t)
-+ apache_read_config(httpd_dirsrvadmin_script_t)
-+ apache_signal(httpd_dirsrvadmin_script_t)
-+ apache_signull(httpd_dirsrvadmin_script_t)
++ apache_read_modules(dirsrvadmin_script_t)
++ apache_read_config(dirsrvadmin_script_t)
++ apache_signal(dirsrvadmin_script_t)
++ apache_signull(dirsrvadmin_script_t)
+ ')
+
+ optional_policy(`
+ # The CGI scripts must be able to manage dirsrv-admin
-+ dirsrvadmin_run_exec(httpd_dirsrvadmin_script_t)
-+ dirsrvadmin_manage_config(httpd_dirsrvadmin_script_t)
-+ dirsrv_domtrans(httpd_dirsrvadmin_script_t)
-+ dirsrv_signal(httpd_dirsrvadmin_script_t)
-+ dirsrv_signull(httpd_dirsrvadmin_script_t)
-+ dirsrv_manage_log(httpd_dirsrvadmin_script_t)
-+ dirsrv_manage_var_lib(httpd_dirsrvadmin_script_t)
-+ dirsrv_pid_filetrans(httpd_dirsrvadmin_script_t)
-+ dirsrv_manage_var_run(httpd_dirsrvadmin_script_t)
-+ dirsrv_manage_config(httpd_dirsrvadmin_script_t)
-+ dirsrv_read_share(httpd_dirsrvadmin_script_t)
++ dirsrvadmin_run_exec(dirsrvadmin_script_t)
++ dirsrvadmin_manage_config(dirsrvadmin_script_t)
++ dirsrv_domtrans(dirsrvadmin_script_t)
++ dirsrv_signal(dirsrvadmin_script_t)
++ dirsrv_signull(dirsrvadmin_script_t)
++ dirsrv_manage_log(dirsrvadmin_script_t)
++ dirsrv_manage_var_lib(dirsrvadmin_script_t)
++ dirsrv_pid_filetrans(dirsrvadmin_script_t)
++ dirsrv_manage_var_run(dirsrvadmin_script_t)
++ dirsrv_manage_config(dirsrvadmin_script_t)
++ dirsrv_read_share(dirsrvadmin_script_t)
+ ')
+')
+
@@ -22307,10 +22717,10 @@ index 0000000..484dd44
\ No newline at end of file
diff --git a/docker.if b/docker.if
new file mode 100644
-index 0000000..d856375
+index 0000000..543baf1
--- /dev/null
+++ b/docker.if
-@@ -0,0 +1,196 @@
+@@ -0,0 +1,250 @@
+
+## The open-source application container engine.
+
@@ -22354,6 +22764,25 @@ index 0000000..d856375
+
+########################################
+##
++## Execute docker lib directories.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`docker_exec_lib',`
++ gen_require(`
++ type docker_var_lib_t;
++ ')
++
++ allow $1 docker_var_lib_t:dir search_dir_perms;
++ can_exec($1, docker_var_lib_t)
++')
++
++########################################
++##
+## Read docker lib files.
+##
+##
@@ -22411,6 +22840,41 @@ index 0000000..d856375
+
+########################################
+##
++## Create objects in a docker var lib directory
++## with an automatic type transition to
++## a specified private type.
++##
++##
++##
++## Domain allowed access.
++##
++##
++##
++##
++## The type of the object to create.
++##
++##
++##
++##
++## The class of the object to be created.
++##
++##
++##
++##
++## The name of the object being created.
++##
++##
++#
++interface(`docker_lib_filetrans',`
++ gen_require(`
++ type docker_var_lib_t;
++ ')
++
++ filetrans_pattern($1, docker_var_lib_t, $2, $3, $4)
++')
++
++########################################
++##
+## Read docker PID files.
+##
+##
@@ -23528,11 +23992,15 @@ index f2516cc..8975946 100644
-
sysnet_dns_name_resolve(drbd_t)
diff --git a/dspam.fc b/dspam.fc
-index 5eddac5..3ea0423 100644
+index 5eddac5..b5fcb77 100644
--- a/dspam.fc
+++ b/dspam.fc
-@@ -5,8 +5,13 @@
- /usr/share/dspam-web/dspam\.cgi -- gen_context(system_u:object_r:httpd_dspam_script_exec_t,s0)
+@@ -2,11 +2,16 @@
+
+ /usr/bin/dspam -- gen_context(system_u:object_r:dspam_exec_t,s0)
+
+-/usr/share/dspam-web/dspam\.cgi -- gen_context(system_u:object_r:httpd_dspam_script_exec_t,s0)
++/usr/share/dspam-web/dspam\.cgi -- gen_context(system_u:object_r:dspam_script_exec_t,s0)
/var/lib/dspam(/.*)? gen_context(system_u:object_r:dspam_var_lib_t,s0)
-/var/lib/dspam/data(/.*)? gen_context(system_u:object_r:httpd_dspam_rw_content_t,s0)
@@ -23542,10 +24010,10 @@ index 5eddac5..3ea0423 100644
/var/run/dspam(/.*)? gen_context(system_u:object_r:dspam_var_run_t,s0)
+
+# web
-+/var/www/dspam/.*\.cgi -- gen_context(system_u:object_r:httpd_dspam_script_exec_t,s0)
-+/var/www/dspam(/.*?) gen_context(system_u:object_r:httpd_dspam_content_t,s0)
++/var/www/dspam/.*\.cgi -- gen_context(system_u:object_r:dspam_script_exec_t,s0)
++/var/www/dspam(/.*?) gen_context(system_u:object_r:dspam_content_t,s0)
+
-+/var/lib/dspam/data(/.*)? gen_context(system_u:object_r:httpd_dspam_rw_content_t,s0)
++/var/lib/dspam/data(/.*)? gen_context(system_u:object_r:dspam_rw_content_t,s0)
diff --git a/dspam.if b/dspam.if
index 18f2452..a446210 100644
--- a/dspam.if
@@ -23822,7 +24290,7 @@ index 18f2452..a446210 100644
+
')
diff --git a/dspam.te b/dspam.te
-index ef62363..37c844b 100644
+index ef62363..1ec4d89 100644
--- a/dspam.te
+++ b/dspam.te
@@ -28,6 +28,9 @@ files_pid_file(dspam_var_run_t)
@@ -23848,7 +24316,7 @@ index ef62363..37c844b 100644
files_search_spool(dspam_t)
-@@ -64,14 +73,32 @@ auth_use_nsswitch(dspam_t)
+@@ -64,14 +73,30 @@ auth_use_nsswitch(dspam_t)
logging_send_syslog_msg(dspam_t)
@@ -23856,36 +24324,35 @@ index ef62363..37c844b 100644
-
optional_policy(`
apache_content_template(dspam)
-
-+ read_files_pattern(httpd_dspam_script_t, dspam_var_lib_t, dspam_var_lib_t)
++ apache_content_alias_template(dspam, dspam)
+
-+ files_search_var_lib(httpd_dspam_script_t)
- list_dirs_pattern(dspam_t, httpd_dspam_content_t, httpd_dspam_content_t)
-- manage_dirs_pattern(dspam_t, httpd_dspam_rw_content_t, httpd_dspam_rw_content_t)
-- manage_files_pattern(dspam_t, httpd_dspam_rw_content_t, httpd_dspam_rw_content_t)
-+ manage_dirs_pattern(dspam_t, httpd_dspam_content_rw_t, httpd_dspam_content_rw_t)
-+ manage_files_pattern(dspam_t, httpd_dspam_content_rw_t, httpd_dspam_content_rw_t)
++ read_files_pattern(dspam_script_t, dspam_var_lib_t, dspam_var_lib_t)
+
-+ domain_dontaudit_read_all_domains_state(httpd_dspam_script_t)
++ files_search_var_lib(dspam_script_t)
+
-+ term_dontaudit_search_ptys(httpd_dspam_script_t)
-+ term_dontaudit_getattr_all_ttys(httpd_dspam_script_t)
-+ term_dontaudit_getattr_all_ptys(httpd_dspam_script_t)
++ domain_dontaudit_read_all_domains_state(dspam_script_t)
+
-+ init_read_utmp(httpd_dspam_script_t)
++ term_dontaudit_search_ptys(dspam_script_t)
++ term_dontaudit_getattr_all_ttys(dspam_script_t)
++ term_dontaudit_getattr_all_ptys(dspam_script_t)
+
+- list_dirs_pattern(dspam_t, httpd_dspam_content_t, httpd_dspam_content_t)
+- manage_dirs_pattern(dspam_t, httpd_dspam_rw_content_t, httpd_dspam_rw_content_t)
+- manage_files_pattern(dspam_t, httpd_dspam_rw_content_t, httpd_dspam_rw_content_t)
++ init_read_utmp(dspam_script_t)
+
-+ logging_send_syslog_msg(httpd_dspam_script_t)
++ logging_send_syslog_msg(dspam_script_t)
+
-+ mta_send_mail(httpd_dspam_script_t)
++ mta_send_mail(dspam_script_t)
+
+ optional_policy(`
-+ mysql_tcp_connect(httpd_dspam_script_t)
-+ mysql_stream_connect(httpd_dspam_script_t)
++ mysql_tcp_connect(dspam_script_t)
++ mysql_stream_connect(dspam_script_t)
+ ')
')
optional_policy(`
-@@ -87,3 +114,12 @@ optional_policy(`
+@@ -87,3 +112,12 @@ optional_policy(`
postgresql_tcp_connect(dspam_t)
')
@@ -25315,18 +25782,19 @@ index 5010f04..928215f 100644
optional_policy(`
diff --git a/fprintd.te b/fprintd.te
-index 92a6479..989f63a 100644
+index 92a6479..064f58e 100644
--- a/fprintd.te
+++ b/fprintd.te
-@@ -20,6 +20,7 @@ files_type(fprintd_var_lib_t)
+@@ -20,6 +20,8 @@ files_type(fprintd_var_lib_t)
allow fprintd_t self:capability sys_nice;
allow fprintd_t self:process { getsched setsched signal sigkill };
allow fprintd_t self:fifo_file rw_fifo_file_perms;
+allow fprintd_t self:netlink_kobject_uevent_socket create_socket_perms;
++allow fprintd_t self:unix_dgram_socket { create_socket_perms sendto };
manage_dirs_pattern(fprintd_t, fprintd_var_lib_t, fprintd_var_lib_t)
manage_files_pattern(fprintd_t, fprintd_var_lib_t, fprintd_var_lib_t)
-@@ -28,16 +29,13 @@ kernel_read_system_state(fprintd_t)
+@@ -28,15 +30,14 @@ kernel_read_system_state(fprintd_t)
dev_list_usbfs(fprintd_t)
dev_read_sysfs(fprintd_t)
@@ -25340,11 +25808,11 @@ index 92a6479..989f63a 100644
auth_use_nsswitch(fprintd_t)
-miscfiles_read_localization(fprintd_t)
--
++logging_send_syslog_msg(fprintd_t)
+
userdom_use_user_ptys(fprintd_t)
userdom_read_all_users_state(fprintd_t)
-
-@@ -54,8 +52,13 @@ optional_policy(`
+@@ -54,8 +55,13 @@ optional_policy(`
')
')
@@ -26185,6 +26653,29 @@ index 8a820fa..996b30c 100644
-')
+userdom_use_inherited_user_terminals(giftd_t)
+userdom_home_manager(gitd_t)
+diff --git a/git.fc b/git.fc
+index 24700f8..6561d56 100644
+--- a/git.fc
++++ b/git.fc
+@@ -2,12 +2,12 @@ HOME_DIR/public_git(/.*)? gen_context(system_u:object_r:git_user_content_t,s0)
+
+ /usr/libexec/git-core/git-daemon -- gen_context(system_u:object_r:gitd_exec_t,s0)
+
+-/var/cache/cgit(/.*)? gen_context(system_u:object_r:httpd_git_rw_content_t,s0)
+-/var/cache/gitweb-caching(/.*)? gen_context(system_u:object_r:httpd_git_rw_content_t,s0)
++/var/cache/cgit(/.*)? gen_context(system_u:object_r:git_rw_content_t,s0)
++/var/cache/gitweb-caching(/.*)? gen_context(system_u:object_r:git_rw_content_t,s0)
+
+ /var/lib/git(/.*)? gen_context(system_u:object_r:git_sys_content_t,s0)
+
+-/var/www/cgi-bin/cgit -- gen_context(system_u:object_r:httpd_git_script_exec_t,s0)
+-/var/www/git(/.*)? gen_context(system_u:object_r:httpd_git_content_t,s0)
+-/var/www/git/gitweb\.cgi -- gen_context(system_u:object_r:httpd_git_script_exec_t,s0)
+-/var/www/gitweb-caching/gitweb\.cgi -- gen_context(system_u:object_r:httpd_git_script_exec_t,s0)
++/var/www/cgi-bin/cgit -- gen_context(system_u:object_r:git_script_exec_t,s0)
++/var/www/git(/.*)? gen_context(system_u:object_r:git_content_t,s0)
++/var/www/git/gitweb\.cgi -- gen_context(system_u:object_r:git_script_exec_t,s0)
++/var/www/gitweb-caching/gitweb\.cgi -- gen_context(system_u:object_r:git_script_exec_t,s0)
diff --git a/git.if b/git.if
index 1e29af1..6c64f55 100644
--- a/git.if
@@ -26232,7 +26723,7 @@ index 1e29af1..6c64f55 100644
+ userdom_user_home_dir_filetrans($1, git_user_content_t, dir, "public_git")
+')
diff --git a/git.te b/git.te
-index dc49c71..654dbc5 100644
+index dc49c71..72aa729 100644
--- a/git.te
+++ b/git.te
@@ -49,14 +49,6 @@ gen_tunable(git_session_users, false)
@@ -26250,7 +26741,15 @@ index dc49c71..654dbc5 100644
## Determine whether Git system daemon
## can search home directories.
##
-@@ -93,10 +85,10 @@ type git_session_t, git_daemon;
+@@ -83,6 +75,7 @@ attribute git_daemon;
+ attribute_role git_session_roles;
+
+ apache_content_template(git)
++apache_content_alias_template(git, git)
+
+ type git_system_t, git_daemon;
+ type gitd_exec_t;
+@@ -93,10 +86,10 @@ type git_session_t, git_daemon;
userdom_user_application_domain(git_session_t, gitd_exec_t)
role git_session_roles types git_session_t;
@@ -26263,7 +26762,7 @@ index dc49c71..654dbc5 100644
userdom_user_home_content(git_user_content_t)
########################################
-@@ -110,6 +102,8 @@ list_dirs_pattern(git_session_t, git_user_content_t, git_user_content_t)
+@@ -110,6 +103,8 @@ list_dirs_pattern(git_session_t, git_user_content_t, git_user_content_t)
read_files_pattern(git_session_t, git_user_content_t, git_user_content_t)
userdom_search_user_home_dirs(git_session_t)
@@ -26272,7 +26771,7 @@ index dc49c71..654dbc5 100644
corenet_all_recvfrom_netlabel(git_session_t)
corenet_all_recvfrom_unlabeled(git_session_t)
corenet_tcp_bind_generic_node(git_session_t)
-@@ -130,9 +124,7 @@ tunable_policy(`git_session_bind_all_unreserved_ports',`
+@@ -130,9 +125,7 @@ tunable_policy(`git_session_bind_all_unreserved_ports',`
corenet_tcp_sendrecv_all_ports(git_session_t)
')
@@ -26283,7 +26782,7 @@ index dc49c71..654dbc5 100644
tunable_policy(`use_nfs_home_dirs',`
fs_getattr_nfs(git_session_t)
-@@ -158,6 +150,9 @@ tunable_policy(`use_samba_home_dirs',`
+@@ -158,6 +151,9 @@ tunable_policy(`use_samba_home_dirs',`
list_dirs_pattern(git_system_t, git_sys_content_t, git_sys_content_t)
read_files_pattern(git_system_t, git_sys_content_t, git_sys_content_t)
@@ -26293,7 +26792,7 @@ index dc49c71..654dbc5 100644
corenet_all_recvfrom_unlabeled(git_system_t)
corenet_all_recvfrom_netlabel(git_system_t)
corenet_tcp_sendrecv_generic_if(git_system_t)
-@@ -176,6 +171,9 @@ logging_send_syslog_msg(git_system_t)
+@@ -176,6 +172,9 @@ logging_send_syslog_msg(git_system_t)
tunable_policy(`git_system_enable_homedirs',`
userdom_search_user_home_dirs(git_system_t)
@@ -26303,7 +26802,78 @@ index dc49c71..654dbc5 100644
')
tunable_policy(`git_system_enable_homedirs && use_nfs_home_dirs',`
-@@ -266,12 +264,9 @@ tunable_policy(`git_cgi_use_nfs',`
+@@ -215,48 +214,48 @@ tunable_policy(`git_system_use_nfs',`
+ # CGI policy
+ #
+
+-list_dirs_pattern(httpd_git_script_t, { git_sys_content_t git_user_content_t }, { git_sys_content_t git_user_content_t })
+-read_files_pattern(httpd_git_script_t, { git_sys_content_t git_user_content_t }, { git_sys_content_t git_user_content_t })
+-files_search_var_lib(httpd_git_script_t)
++list_dirs_pattern(git_script_t, { git_sys_content_t git_user_content_t }, { git_sys_content_t git_user_content_t })
++read_files_pattern(git_script_t, { git_sys_content_t git_user_content_t }, { git_sys_content_t git_user_content_t })
++files_search_var_lib(git_script_t)
+
+-files_dontaudit_getattr_tmp_dirs(httpd_git_script_t)
++files_dontaudit_getattr_tmp_dirs(git_script_t)
+
+-auth_use_nsswitch(httpd_git_script_t)
++auth_use_nsswitch(git_script_t)
+
+ tunable_policy(`git_cgi_enable_homedirs',`
+- userdom_search_user_home_dirs(httpd_git_script_t)
++ userdom_search_user_home_dirs(git_script_t)
+ ')
+
+ tunable_policy(`git_cgi_enable_homedirs && use_nfs_home_dirs',`
+- fs_getattr_nfs(httpd_git_script_t)
+- fs_list_nfs(httpd_git_script_t)
+- fs_read_nfs_files(httpd_git_script_t)
++ fs_getattr_nfs(git_script_t)
++ fs_list_nfs(git_script_t)
++ fs_read_nfs_files(git_script_t)
+ ',`
+- fs_dontaudit_read_nfs_files(httpd_git_script_t)
++ fs_dontaudit_read_nfs_files(git_script_t)
+ ')
+
+ tunable_policy(`git_cgi_enable_homedirs && use_samba_home_dirs',`
+- fs_getattr_cifs(httpd_git_script_t)
+- fs_list_cifs(httpd_git_script_t)
+- fs_read_cifs_files(httpd_git_script_t)
++ fs_getattr_cifs(git_script_t)
++ fs_list_cifs(git_script_t)
++ fs_read_cifs_files(git_script_t)
+ ',`
+- fs_dontaudit_read_cifs_files(httpd_git_script_t)
++ fs_dontaudit_read_cifs_files(git_script_t)
+ ')
+
+ tunable_policy(`git_cgi_use_cifs',`
+- fs_getattr_cifs(httpd_git_script_t)
+- fs_list_cifs(httpd_git_script_t)
+- fs_read_cifs_files(httpd_git_script_t)
++ fs_getattr_cifs(git_script_t)
++ fs_list_cifs(git_script_t)
++ fs_read_cifs_files(git_script_t)
+ ',`
+- fs_dontaudit_read_cifs_files(httpd_git_script_t)
++ fs_dontaudit_read_cifs_files(git_script_t)
+ ')
+
+ tunable_policy(`git_cgi_use_nfs',`
+- fs_getattr_nfs(httpd_git_script_t)
+- fs_list_nfs(httpd_git_script_t)
+- fs_read_nfs_files(httpd_git_script_t)
++ fs_getattr_nfs(git_script_t)
++ fs_list_nfs(git_script_t)
++ fs_read_nfs_files(git_script_t)
+ ',`
+- fs_dontaudit_read_nfs_files(httpd_git_script_t)
++ fs_dontaudit_read_nfs_files(git_script_t)
+ ')
+
+ ########################################
+@@ -266,12 +265,9 @@ tunable_policy(`git_cgi_use_nfs',`
allow git_daemon self:fifo_file rw_fifo_file_perms;
@@ -26687,10 +27257,10 @@ index 0000000..1ed97fe
+
diff --git a/glusterd.te b/glusterd.te
new file mode 100644
-index 0000000..7b78047
+index 0000000..4b88195
--- /dev/null
+++ b/glusterd.te
-@@ -0,0 +1,199 @@
+@@ -0,0 +1,200 @@
+policy_module(glusterfs, 1.1.2)
+
+##
@@ -26782,12 +27352,13 @@ index 0000000..7b78047
+
+manage_dirs_pattern(glusterd_t, glusterd_var_lib_t, glusterd_var_lib_t)
+manage_files_pattern(glusterd_t, glusterd_var_lib_t, glusterd_var_lib_t)
-+#manage_sock_files_pattern(glusterd_t, glusterd_var_lib_t, glusterd_var_lib_t)
++manage_sock_files_pattern(glusterd_t, glusterd_var_lib_t, glusterd_var_lib_t)
+files_var_lib_filetrans(glusterd_t, glusterd_var_lib_t, dir)
+relabel_files_pattern(glusterd_t, glusterd_var_lib_t, glusterd_var_lib_t)
+
+manage_dirs_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t)
+manage_files_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t)
++manage_fifo_files_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t)
+manage_lnk_files_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t)
+relabel_files_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t)
+relabel_lnk_files_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t)
@@ -30718,10 +31289,10 @@ index 0000000..3ce0ac0
+')
diff --git a/gssproxy.te b/gssproxy.te
new file mode 100644
-index 0000000..5044e7b
+index 0000000..bbd5979
--- /dev/null
+++ b/gssproxy.te
-@@ -0,0 +1,66 @@
+@@ -0,0 +1,68 @@
+policy_module(gssproxy, 1.0.0)
+
+########################################
@@ -30746,6 +31317,7 @@ index 0000000..5044e7b
+#
+# gssproxy local policy
+#
++allow gssproxy_t self:capability { setuid setgid };
+allow gssproxy_t self:capability2 block_suspend;
+allow gssproxy_t self:fifo_file rw_fifo_file_perms;
+allow gssproxy_t self:unix_stream_socket create_stream_socket_perms;
@@ -30776,6 +31348,7 @@ index 0000000..5044e7b
+
+miscfiles_read_localization(gssproxy_t)
+
++userdom_read_all_users_keys(gssproxy_t)
+userdom_manage_user_tmp_dirs(gssproxy_t)
+userdom_manage_user_tmp_files(gssproxy_t)
+
@@ -31718,7 +32291,7 @@ index ac00fb0..36ef2e5 100644
+ userdom_user_home_dir_filetrans($1, irssi_home_t, dir, "irclogs")
')
diff --git a/irc.te b/irc.te
-index 2636503..7e29d1d 100644
+index 2636503..5910c59 100644
--- a/irc.te
+++ b/irc.te
@@ -31,13 +31,35 @@ typealias irc_home_t alias { user_irc_home_t staff_irc_home_t sysadm_irc_home_t
@@ -31776,23 +32349,27 @@ index 2636503..7e29d1d 100644
manage_dirs_pattern(irc_t, irc_tmp_t, irc_tmp_t)
manage_files_pattern(irc_t, irc_tmp_t, irc_tmp_t)
-@@ -70,7 +86,6 @@ files_tmp_filetrans(irc_t, irc_tmp_t, { file dir lnk_file sock_file fifo_file })
+@@ -70,7 +86,9 @@ files_tmp_filetrans(irc_t, irc_tmp_t, { file dir lnk_file sock_file fifo_file })
kernel_read_system_state(irc_t)
-corenet_all_recvfrom_unlabeled(irc_t)
++corecmd_exec_shell(irc_t)
++corecmd_exec_bin(irc_t)
++
corenet_all_recvfrom_netlabel(irc_t)
corenet_tcp_sendrecv_generic_if(irc_t)
corenet_tcp_sendrecv_generic_node(irc_t)
-@@ -93,7 +108,6 @@ dev_read_rand(irc_t)
+@@ -93,8 +111,6 @@ dev_read_rand(irc_t)
domain_use_interactive_fds(irc_t)
-files_read_usr_files(irc_t)
-
+-
fs_getattr_all_fs(irc_t)
fs_search_auto_mountpoints(irc_t)
-@@ -106,14 +120,16 @@ auth_use_nsswitch(irc_t)
+
+@@ -106,14 +122,16 @@ auth_use_nsswitch(irc_t)
init_read_utmp(irc_t)
init_dontaudit_lock_utmp(irc_t)
@@ -31814,7 +32391,7 @@ index 2636503..7e29d1d 100644
tunable_policy(`irc_use_any_tcp_ports',`
allow irc_t self:tcp_socket { accept listen };
-@@ -124,18 +140,69 @@ tunable_policy(`irc_use_any_tcp_ports',`
+@@ -124,18 +142,69 @@ tunable_policy(`irc_use_any_tcp_ports',`
corenet_tcp_sendrecv_all_ports(irc_t)
')
@@ -31849,7 +32426,7 @@ index 2636503..7e29d1d 100644
+
+kernel_read_system_state(irssi_t)
+
-+corecmd_search_bin(irssi_t)
++corecmd_exec_shell(irssi_t)
+corecmd_read_bin_symlinks(irssi_t)
+
+corenet_tcp_connect_ircd_port(irssi_t)
@@ -36427,6 +37004,27 @@ index 4c2b111..8915138 100644
kerberos_use(slapd_t)
')
+diff --git a/lightsquid.fc b/lightsquid.fc
+index 044390c..63e2058 100644
+--- a/lightsquid.fc
++++ b/lightsquid.fc
+@@ -1,11 +1,11 @@
+ /etc/cron\.daily/lightsquid -- gen_context(system_u:object_r:lightsquid_exec_t,s0)
+
+-/usr/lib/cgi-bin/lightsquid/.*\.cfg -- gen_context(system_u:object_r:httpd_lightsquid_content_t,s0)
+-/usr/lib/cgi-bin/lightsquid/.*\.cgi -- gen_context(system_u:object_r:httpd_lightsquid_script_exec_t,s0)
++/usr/lib/cgi-bin/lightsquid/.*\.cfg -- gen_context(system_u:object_r:lightsquid_content_t,s0)
++/usr/lib/cgi-bin/lightsquid/.*\.cgi -- gen_context(system_u:object_r:lightsquid_script_exec_t,s0)
+
+-/usr/share/lightsquid/cgi/.*\.cgi -- gen_context(system_u:object_r:httpd_lightsquid_script_exec_t,s0)
++/usr/share/lightsquid/cgi/.*\.cgi -- gen_context(system_u:object_r:lightsquid_script_exec_t,s0)
+
+ /var/lightsquid(/.*)? gen_context(system_u:object_r:lightsquid_rw_content_t,s0)
+
+-/var/www/html/lightsquid(/.*)? gen_context(system_u:object_r:httpd_lightsquid_content_t,s0)
+-/var/www/html/lightsquid/report(/.*)? gen_context(system_u:object_r:lightsquid_rw_content_t,s0)
++/var/www/html/lightsquid(/.*)? gen_context(system_u:object_r:lightsquid_content_t,s0)
++/var/www/html/lightsquid/report(/.*)? gen_context(system_u:object_r:lightsquid_report_content_t,s0)
diff --git a/lightsquid.if b/lightsquid.if
index 33a28b9..33ffe24 100644
--- a/lightsquid.if
@@ -36441,10 +37039,34 @@ index 33a28b9..33ffe24 100644
+ ')
')
diff --git a/lightsquid.te b/lightsquid.te
-index 09c4f27..75854ed 100644
+index 09c4f27..6c7855e 100644
--- a/lightsquid.te
+++ b/lightsquid.te
-@@ -31,11 +31,6 @@ corecmd_exec_shell(lightsquid_t)
+@@ -13,38 +13,34 @@ type lightsquid_exec_t;
+ application_domain(lightsquid_t, lightsquid_exec_t)
+ role lightsquid_roles types lightsquid_t;
+
+-type lightsquid_rw_content_t;
+-files_type(lightsquid_rw_content_t)
++type lightsquid_report_content_t;
++files_type(lightsquid_report_content_t)
+
+ ########################################
+ #
+ # Local policy
+ #
+
+-manage_dirs_pattern(lightsquid_t, lightsquid_rw_content_t, lightsquid_rw_content_t)
+-manage_files_pattern(lightsquid_t, lightsquid_rw_content_t, lightsquid_rw_content_t)
+-manage_lnk_files_pattern(lightsquid_t, lightsquid_rw_content_t, lightsquid_rw_content_t)
+-files_var_filetrans(lightsquid_t, lightsquid_rw_content_t, dir)
++manage_dirs_pattern(lightsquid_t, lightsquid_report_content_t, lightsquid_report_content_t)
++manage_files_pattern(lightsquid_t, lightsquid_report_content_t, lightsquid_report_content_t)
++manage_lnk_files_pattern(lightsquid_t, lightsquid_report_content_t, lightsquid_report_content_t)
++files_var_filetrans(lightsquid_t, lightsquid_report_content_t, dir)
+
+ corecmd_exec_bin(lightsquid_t)
+ corecmd_exec_shell(lightsquid_t)
dev_read_urand(lightsquid_t)
@@ -36456,6 +37078,19 @@ index 09c4f27..75854ed 100644
squid_read_config(lightsquid_t)
squid_read_log(lightsquid_t)
+ optional_policy(`
+ apache_content_template(lightsquid)
++ apache_content_alias_template(lightsquid, lightsquid)
+
+- list_dirs_pattern(httpd_lightsquid_script_t, lightsquid_rw_content_t, lightsquid_rw_content_t)
+- read_files_pattern(httpd_lightsquid_script_t, lightsquid_rw_content_t, lightsquid_rw_content_t)
+- read_lnk_files_pattern(httpd_lightsquid_script_t, lightsquid_rw_content_t, lightsquid_rw_content_t)
++ list_dirs_pattern(lightsquid_script_t, lightsquid_report_content_t, lightsquid_report_content_t)
++ read_files_pattern(lightsquid_script_t, lightsquid_report_content_t, lightsquid_report_content_t)
++ read_lnk_files_pattern(lightsquid_script_t, lightsquid_report_content_t, lightsquid_report_content_t)
+ ')
+
+ optional_policy(`
diff --git a/likewise.if b/likewise.if
index bd20e8c..3393a01 100644
--- a/likewise.if
@@ -37253,7 +37888,7 @@ index be0ab84..8c532a6 100644
logging_read_all_logs(logrotate_mail_t)
+manage_files_pattern(logrotate_mail_t, logrotate_tmp_t, logrotate_tmp_t)
diff --git a/logwatch.te b/logwatch.te
-index ab65034..52cbb90 100644
+index ab65034..6f52140 100644
--- a/logwatch.te
+++ b/logwatch.te
@@ -6,6 +6,13 @@ policy_module(logwatch, 1.12.2)
@@ -37315,7 +37950,7 @@ index ab65034..52cbb90 100644
fs_dontaudit_list_auto_mountpoints(logwatch_t)
fs_list_inotifyfs(logwatch_t)
-@@ -100,23 +115,17 @@ libs_read_lib_files(logwatch_t)
+@@ -100,23 +115,14 @@ libs_read_lib_files(logwatch_t)
logging_read_all_logs(logwatch_t)
logging_send_syslog_msg(logwatch_t)
@@ -37325,9 +37960,8 @@ index ab65034..52cbb90 100644
sysnet_exec_ifconfig(logwatch_t)
- userdom_dontaudit_search_user_home_dirs(logwatch_t)
-+userdom_dontaudit_list_admin_dir(logwatch_t)
-
+-userdom_dontaudit_search_user_home_dirs(logwatch_t)
+-
mta_sendmail_domtrans(logwatch_t, logwatch_mail_t)
mta_getattr_spool(logwatch_t)
@@ -37340,7 +37974,7 @@ index ab65034..52cbb90 100644
corenet_sendrecv_smtp_client_packets(logwatch_t)
corenet_tcp_connect_smtp_port(logwatch_t)
corenet_tcp_sendrecv_smtp_port(logwatch_t)
-@@ -160,6 +169,12 @@ optional_policy(`
+@@ -160,6 +166,12 @@ optional_policy(`
')
optional_policy(`
@@ -37353,7 +37987,7 @@ index ab65034..52cbb90 100644
rpc_search_nfs_state_data(logwatch_t)
')
-@@ -187,6 +202,12 @@ dev_read_sysfs(logwatch_mail_t)
+@@ -187,6 +199,12 @@ dev_read_sysfs(logwatch_mail_t)
logging_read_all_logs(logwatch_mail_t)
@@ -38424,16 +39058,30 @@ index 6b6e2e1..9889cef 100644
+ spamassassin_read_home_client(mscan_t)
spamassassin_read_lib_files(mscan_t)
')
+diff --git a/man2html.fc b/man2html.fc
+index 82f6255..3686732 100644
+--- a/man2html.fc
++++ b/man2html.fc
+@@ -1,5 +1,5 @@
+-/usr/lib/man2html/cgi-bin/man/man2html -- gen_context(system_u:object_r:httpd_man2html_script_exec_t,s0)
+-/usr/lib/man2html/cgi-bin/man/mansec -- gen_context(system_u:object_r:httpd_man2html_script_exec_t,s0)
+-/usr/lib/man2html/cgi-bin/man/manwhatis -- gen_context(system_u:object_r:httpd_man2html_script_exec_t,s0)
++/usr/lib/man2html/cgi-bin/man/man2html -- gen_context(system_u:object_r:man2html_script_exec_t,s0)
++/usr/lib/man2html/cgi-bin/man/mansec -- gen_context(system_u:object_r:man2html_script_exec_t,s0)
++/usr/lib/man2html/cgi-bin/man/manwhatis -- gen_context(system_u:object_r:man2html_script_exec_t,s0)
+
+-/var/cache/man2html(/.*)? gen_context(system_u:object_r:httpd_man2html_script_cache_t,s0)
++/var/cache/man2html(/.*)? gen_context(system_u:object_r:man2html_rw_content_t,s0)
diff --git a/man2html.if b/man2html.if
-index 54ec04d..fe43dea 100644
+index 54ec04d..53eaf61 100644
--- a/man2html.if
+++ b/man2html.if
-@@ -1 +1,127 @@
+@@ -1 +1,137 @@
## A Unix manpage-to-HTML converter.
+
+########################################
+##
-+## Transition to httpd_man2html_script.
++## Transition to man2html_script.
+##
+##
+##
@@ -38441,18 +39089,18 @@ index 54ec04d..fe43dea 100644
+##
+##
+#
-+interface(`httpd_man2html_script_domtrans',`
++interface(`man2html_script_domtrans',`
+ gen_require(`
-+ type httpd_man2html_script_t, httpd_man2html_script_exec_t;
++ type man2html_script_t, man2html_script_exec_t;
+ ')
+
+ corecmd_search_bin($1)
-+ domtrans_pattern($1, httpd_man2html_script_exec_t, httpd_man2html_script_t)
++ domtrans_pattern($1, man2html_script_exec_t, man2html_script_t)
+')
+
+########################################
+##
-+## Search httpd_man2html_script cache directories.
++## Search man2html_script content directories.
+##
+##
+##
@@ -38460,18 +39108,19 @@ index 54ec04d..fe43dea 100644
+##
+##
+#
-+interface(`httpd_man2html_script_search_cache',`
++interface(`man2html_search_content',`
+ gen_require(`
-+ type httpd_man2html_script_cache_t;
++ type man2html_content_t;
++ type man2html_rw_content_t;
+ ')
+
-+ allow $1 httpd_man2html_script_cache_t:dir search_dir_perms;
++ allow $1 { man2html_rw_content_t man2html_content_t }:dir search_dir_perms;
+ files_search_var($1)
+')
+
+########################################
+##
-+## Read httpd_man2html_script cache files.
++## Read man2html cache files.
+##
+##
+##
@@ -38479,19 +39128,22 @@ index 54ec04d..fe43dea 100644
+##
+##
+#
-+interface(`httpd_man2html_script_read_cache_files',`
++interface(`man2html_read_content_files',`
+ gen_require(`
-+ type httpd_man2html_script_cache_t;
++ type man2html_content_t;
++ type man2html_rw_content_t;
+ ')
+
+ files_search_var($1)
-+ read_files_pattern($1, httpd_man2html_script_cache_t, httpd_man2html_script_cache_t)
++ allow $1 { man2html_rw_content_t man2html_content_t }:dir search_dir_perms;
++ read_files_pattern($1, man2html_rw_content_t, man2html_rw_content_t)
++ read_files_pattern($1, man2html_content_t, man2html_content_t)
+')
+
+########################################
+##
+## Create, read, write, and delete
-+## httpd_man2html_script cache files.
++## man2html content files.
+##
+##
+##
@@ -38499,18 +39151,21 @@ index 54ec04d..fe43dea 100644
+##
+##
+#
-+interface(`httpd_man2html_script_manage_cache_files',`
++interface(`man2html_manage_content_files',`
+ gen_require(`
-+ type httpd_man2html_script_cache_t;
++ type man2html_content_t;
++ type man2html_rw_content_t;
+ ')
+
+ files_search_var($1)
-+ manage_files_pattern($1, httpd_man2html_script_cache_t, httpd_man2html_script_cache_t)
++ manage_files_pattern($1, man2html_rw_content_t, man2html_rw_content_t)
++ manage_files_pattern($1, man2html_content_t, man2html_content_t)
+')
+
+########################################
+##
-+## Manage httpd_man2html_script cache dirs.
++## Create, read, write, and delete
++## man2html content dirs.
+##
+##
+##
@@ -38518,20 +39173,21 @@ index 54ec04d..fe43dea 100644
+##
+##
+#
-+interface(`httpd_man2html_script_manage_cache_dirs',`
++interface(`man2html_manage_content_dirs',`
+ gen_require(`
-+ type httpd_man2html_script_cache_t;
++ type man2html_content_t;
++ type man2html_rw_content_t;
+ ')
+
+ files_search_var($1)
-+ manage_dirs_pattern($1, httpd_man2html_script_cache_t, httpd_man2html_script_cache_t)
++ manage_dirs_pattern($1, man2html_rw_content_t, man2html_rw_content_t)
++ manage_dirs_pattern($1, man2html_content_t, man2html_content_t)
+')
+
-+
+########################################
+##
+## All of the rules required to administrate
-+## an httpd_man2html_script environment
++## an man2html environment
+##
+##
+##
@@ -38539,17 +39195,19 @@ index 54ec04d..fe43dea 100644
+##
+##
+#
-+interface(`httpd_man2html_script_admin',`
++interface(`man2html_admin',`
+ gen_require(`
-+ type httpd_man2html_script_t;
-+ type httpd_man2html_script_cache_t;
++ type man2html_script_t;
++ type man2html_rw_content_t;
++ type man2html_content_t;
+ ')
+
-+ allow $1 httpd_man2html_script_t:process { ptrace signal_perms };
-+ ps_process_pattern($1, httpd_man2html_script_t)
++ allow $1 man2html_script_t:process { ptrace signal_perms };
++ ps_process_pattern($1, man2html_script_t)
+
+ files_search_var($1)
-+ admin_pattern($1, httpd_man2html_script_cache_t)
++ admin_pattern($1, man2html_content_t)
++ admin_pattern($1, man2html_rw_content_t)
+
+ optional_policy(`
+ systemd_passwd_agent_exec($1)
@@ -38557,22 +39215,22 @@ index 54ec04d..fe43dea 100644
+ ')
+')
diff --git a/man2html.te b/man2html.te
-index e08c55d..9e634bd 100644
+index e08c55d..24b56e9 100644
--- a/man2html.te
+++ b/man2html.te
-@@ -5,22 +5,24 @@ policy_module(man2html, 1.0.0)
+@@ -5,22 +5,18 @@ policy_module(man2html, 1.0.0)
# Declarations
#
-apache_content_template(man2html)
-
- type httpd_man2html_script_cache_t;
- files_type(httpd_man2html_script_cache_t)
+-
+-type httpd_man2html_script_cache_t;
+-files_type(httpd_man2html_script_cache_t)
########################################
#
-# Local policy
-+# httpd_man2html_script local policy
++# man2html_script local policy
#
-manage_dirs_pattern(httpd_man2html_script_t, httpd_man2html_script_cache_t, httpd_man2html_script_cache_t)
@@ -38580,19 +39238,16 @@ index e08c55d..9e634bd 100644
-manage_lnk_files_pattern(httpd_man2html_script_t, httpd_man2html_script_cache_t, httpd_man2html_script_cache_t)
-files_var_filetrans(httpd_man2html_script_t, httpd_man2html_script_cache_t, dir)
+optional_policy(`
++ apache_content_template(man2html)
++ apache_content_alias_template(man2html, man2html)
-files_read_etc_files(httpd_man2html_script_t)
-+ apache_content_template(man2html)
++ allow man2html_script_t self:process fork;
-miscfiles_read_localization(httpd_man2html_script_t)
-miscfiles_read_man_pages(httpd_man2html_script_t)
-+ allow httpd_man2html_script_t self:process { fork };
-+
-+ manage_dirs_pattern(httpd_man2html_script_t, httpd_man2html_script_cache_t, httpd_man2html_script_cache_t)
-+ manage_files_pattern(httpd_man2html_script_t, httpd_man2html_script_cache_t, httpd_man2html_script_cache_t)
-+ manage_lnk_files_pattern(httpd_man2html_script_t, httpd_man2html_script_cache_t, httpd_man2html_script_cache_t)
-+ files_var_filetrans(httpd_man2html_script_t, httpd_man2html_script_cache_t, { dir file })
-+
++ typealias man2html_rw_content_t alias man2html_script_cache_t;
++ files_var_filetrans(man2html_script_t, man2html_rw_content_t, { dir file })
+')
diff --git a/mandb.fc b/mandb.fc
index 8ae78b5..16e55cd 100644
@@ -39148,8 +39803,27 @@ index 0000000..a04dd6b
+
+domain_use_interactive_fds(mcollective_t)
+
+diff --git a/mediawiki.fc b/mediawiki.fc
+index 99f7c41..93ec6db 100644
+--- a/mediawiki.fc
++++ b/mediawiki.fc
+@@ -1,8 +1,8 @@
+-/usr/lib/mediawiki/math/texvc -- gen_context(system_u:object_r:httpd_mediawiki_script_exec_t,s0)
+-/usr/lib/mediawiki/math/texvc_tex -- gen_context(system_u:object_r:httpd_mediawiki_script_exec_t,s0)
+-/usr/lib/mediawiki/math/texvc_tes -- gen_context(system_u:object_r:httpd_mediawiki_script_exec_t,s0)
++/usr/lib/mediawiki/math/texvc -- gen_context(system_u:object_r:mediawiki_script_exec_t,s0)
++/usr/lib/mediawiki/math/texvc_tex -- gen_context(system_u:object_r:mediawiki_script_exec_t,s0)
++/usr/lib/mediawiki/math/texvc_tes -- gen_context(system_u:object_r:mediawiki_script_exec_t,s0)
+
+-/usr/share/mediawiki(/.*)? gen_context(system_u:object_r:httpd_mediawiki_content_t,s0)
++/usr/share/mediawiki(/.*)? gen_context(system_u:object_r:mediawiki_content_t,s0)
+
+-/var/www/wiki(/.*)? gen_context(system_u:object_r:httpd_mediawiki_rw_content_t,s0)
+-/var/www/wiki/.*\.php -- gen_context(system_u:object_r:httpd_mediawiki_content_t,s0)
++/var/www/wiki(/.*)? gen_context(system_u:object_r:mediawiki_rw_content_t,s0)
++/var/www/wiki/.*\.php -- gen_context(system_u:object_r:mediawiki_content_t,s0)
diff --git a/mediawiki.if b/mediawiki.if
-index 9771b4b..1c1d012 100644
+index 9771b4b..9b183e6 100644
--- a/mediawiki.if
+++ b/mediawiki.if
@@ -1 +1,40 @@
@@ -39169,12 +39843,12 @@ index 9771b4b..1c1d012 100644
+#
+interface(`mediawiki_read_tmp_files',`
+ gen_require(`
-+ type httpd_mediawiki_tmp_t;
++ type mediawiki_tmp_t;
+ ')
+
+ files_search_tmp($1)
-+ read_files_pattern($1, httpd_mediawiki_tmp_t, httpd_mediawiki_tmp_t)
-+ read_lnk_files_pattern($1, httpd_mediawiki_tmp_t, httpd_mediawiki_tmp_t)
++ read_files_pattern($1, mediawiki_tmp_t, mediawiki_tmp_t)
++ read_lnk_files_pattern($1, mediawiki_tmp_t, mediawiki_tmp_t)
+')
+
+#######################################
@@ -39189,23 +39863,22 @@ index 9771b4b..1c1d012 100644
+#
+interface(`mediawiki_delete_tmp_files',`
+ gen_require(`
-+ type httpd_mediawiki_tmp_t;
++ type mediawiki_tmp_t;
+ ')
+
-+ delete_files_pattern($1, httpd_mediawiki_tmp_t, httpd_mediawiki_tmp_t)
++ delete_files_pattern($1, mediawiki_tmp_t, mediawiki_tmp_t)
+')
diff --git a/mediawiki.te b/mediawiki.te
-index c528b9f..212712c 100644
+index c528b9f..fcbc191 100644
--- a/mediawiki.te
+++ b/mediawiki.te
-@@ -5,13 +5,16 @@ policy_module(mediawiki, 1.0.0)
+@@ -5,13 +5,26 @@ policy_module(mediawiki, 1.0.0)
# Declarations
#
-apache_content_template(mediawiki)
-+optional_policy(`
-+
-+ apache_content_template(mediawiki)
++type mediawiki_tmp_t;
++files_tmp_file(mediawiki_tmp_t)
########################################
#
@@ -39213,10 +39886,21 @@ index c528b9f..212712c 100644
#
-files_search_var_lib(httpd_mediawiki_script_t)
-+ files_search_var_lib(httpd_mediawiki_script_t)
++optional_policy(`
-miscfiles_read_tetex_data(httpd_mediawiki_script_t)
-+ miscfiles_read_tetex_data(httpd_mediawiki_script_t)
++ apache_content_template(mediawiki)
++ apache_content_alias_template(mediawiki, mediawiki)
++
++ manage_dirs_pattern(mediawiki_script_t, mediawiki_tmp_t, mediawiki_tmp_t)
++ manage_files_pattern(mediawiki_script_t, mediawiki_tmp_t, mediawiki_tmp_t)
++ manage_sock_files_pattern(mediawiki_script_t, mediawiki_tmp_t, mediawiki_tmp_t)
++ manage_lnk_files_pattern(mediawiki_script_t, mediawiki_tmp_t, mediawiki_tmp_t)
++ files_tmp_filetrans(mediawiki_script_t, mediawiki_tmp_t, { file dir lnk_file })
++
++ files_search_var_lib(mediawiki_script_t)
++
++ miscfiles_read_tetex_data(mediawiki_script_t)
+')
diff --git a/memcached.if b/memcached.if
index 1d4eb19..650014e 100644
@@ -39778,10 +40462,10 @@ index 0000000..767bbad
+/usr/sbin/mip6d -- gen_context(system_u:object_r:mip6d_exec_t,s0)
diff --git a/mip6d.if b/mip6d.if
new file mode 100644
-index 0000000..9e2bf1b
+index 0000000..8169129
--- /dev/null
+++ b/mip6d.if
-@@ -0,0 +1,80 @@
+@@ -0,0 +1,79 @@
+
+## Mobile IPv6 and NEMO Basic Support implementation
+
@@ -39820,7 +40504,7 @@ index 0000000..9e2bf1b
+ ')
+
+ systemd_exec_systemctl($1)
-+ systemd_read_fifo_file_passwd_run($1)
++ systemd_read_fifo_file_passwd_run($1)
+ allow $1 mip6d_unit_file_t:file read_file_perms;
+ allow $1 mip6d_unit_file_t:service manage_service_perms;
+
@@ -39838,22 +40522,21 @@ index 0000000..9e2bf1b
+## Domain allowed access.
+##