--- nsaserefpolicy/policy/modules/apps/ethereal.fc	2008-08-07 11:15:03.000000000 -0400
+++ serefpolicy-3.5.5/policy/modules/apps/ethereal.fc	2008-08-14 13:53:54.000000000 -0400
@@ -1,4 +1,4 @@
-HOME_DIR/\.ethereal(/.*)? 		gen_context(system_u:object_r:ROLE_ethereal_home_t,s0)
+HOME_DIR/\.ethereal(/.*)? 		gen_context(system_u:object_r:ethereal_home_t,s0)
 
 /usr/sbin/ethereal.*		--	gen_context(system_u:object_r:ethereal_exec_t,s0)
 /usr/sbin/tethereal.*		--	gen_context(system_u:object_r:tethereal_exec_t,s0)
--- nsaserefpolicy/policy/modules/apps/ethereal.if	2008-08-07 11:15:02.000000000 -0400
+++ serefpolicy-3.5.5/policy/modules/apps/ethereal.if	2008-08-14 13:53:54.000000000 -0400
@@ -35,6 +35,7 @@
 template(`ethereal_per_role_template',`
 
 	gen_require(`
+		type ethereal_home_t, ethereal_tmp_t;
 		type ethereal_exec_t;
 	')
 
@@ -48,12 +49,8 @@
 	application_domain($1_ethereal_t, ethereal_exec_t)
 	role $3 types $1_ethereal_t;
 
-	type $1_ethereal_home_t alias $1_ethereal_rw_t;
-	files_poly_member($1_ethereal_home_t)
-	userdom_user_home_content($1, $1_ethereal_home_t)
-
-	type $1_ethereal_tmp_t;
-	files_tmp_file($1_ethereal_tmp_t)
+	typealias ethereal_home_t alias $1_ethereal_home_t;
+	typealias ethereal_tmp_t alias $1_ethereal_tmp_t;
 
 	type $1_ethereal_tmpfs_t;
 	files_tmpfs_file($1_ethereal_tmpfs_t)
@@ -78,15 +75,15 @@
 	corecmd_search_bin($1_ethereal_t)
 
 	# /home/.ethereal
-	manage_dirs_pattern($1_ethereal_t, $1_ethereal_home_t, $1_ethereal_home_t)
-	manage_files_pattern($1_ethereal_t, $1_ethereal_home_t, $1_ethereal_home_t)
-	manage_lnk_files_pattern($1_ethereal_t, $1_ethereal_home_t, $1_ethereal_home_t)
-	userdom_user_home_dir_filetrans($1, $1_ethereal_t, $1_ethereal_home_t, dir)
+	manage_dirs_pattern($1_ethereal_t, ethereal_home_t, ethereal_home_t)
+	manage_files_pattern($1_ethereal_t, ethereal_home_t, ethereal_home_t)
+	manage_lnk_files_pattern($1_ethereal_t, ethereal_home_t, ethereal_home_t)
+	userdom_user_home_dir_filetrans($1, $1_ethereal_t, ethereal_home_t, dir)
 
 	# Store temporary files
-	manage_dirs_pattern($1_ethereal_t, $1_ethereal_tmp_t, $1_ethereal_tmp_t)
-	manage_files_pattern($1_ethereal_t, $1_ethereal_tmp_t, $1_ethereal_tmp_t)
-	files_tmp_filetrans($1_ethereal_t, $1_ethereal_tmp_t, { dir file })
+	manage_dirs_pattern($1_ethereal_t, ethereal_tmp_t, ethereal_tmp_t)
+	manage_files_pattern($1_ethereal_t, ethereal_tmp_t, ethereal_tmp_t)
+	files_tmp_filetrans($1_ethereal_t, ethereal_tmp_t, { dir file })
 
 	manage_dirs_pattern($1_ethereal_t, $1_ethereal_tmpfs_t, $1_ethereal_tmpfs_t)
 	manage_files_pattern($1_ethereal_t, $1_ethereal_tmpfs_t, $1_ethereal_tmpfs_t)
@@ -99,12 +96,12 @@
 	allow $1_ethereal_t $2:fd use;
 	allow $1_ethereal_t $2:process sigchld;
 
-	manage_dirs_pattern($2, $1_ethereal_home_t, $1_ethereal_home_t)
-	manage_files_pattern($2, $1_ethereal_home_t, $1_ethereal_home_t)
-	manage_lnk_files_pattern($2, $1_ethereal_home_t, $1_ethereal_home_t)
-	relabel_dirs_pattern($2, $1_ethereal_home_t, $1_ethereal_home_t)
-	relabel_files_pattern($2, $1_ethereal_home_t, $1_ethereal_home_t)
-	relabel_lnk_files_pattern($2, $1_ethereal_home_t, $1_ethereal_home_t)
+	manage_dirs_pattern($2, ethereal_home_t, ethereal_home_t)
+	manage_files_pattern($2, ethereal_home_t, ethereal_home_t)
+	manage_lnk_files_pattern($2, ethereal_home_t, ethereal_home_t)
+	relabel_dirs_pattern($2, ethereal_home_t, ethereal_home_t)
+	relabel_files_pattern($2, ethereal_home_t, ethereal_home_t)
+	relabel_lnk_files_pattern($2, ethereal_home_t, ethereal_home_t)
 
 	kernel_read_kernel_sysctls($1_ethereal_t)
 	kernel_read_system_state($1_ethereal_t)
@@ -134,7 +131,7 @@
 
 	sysnet_read_config($1_ethereal_t)
 
-	userdom_manage_user_home_content_files($1, $1_ethereal_t)
+	unprivuser_manage_home_content_files($1_ethereal_t)
 	
 	tunable_policy(`use_nfs_home_dirs',`
 		fs_manage_nfs_dirs($1_ethereal_t)
@@ -152,28 +149,11 @@
 		nscd_socket_use($1_ethereal_t)
 	')
 
-	# Manual transition from userhelper 
-	optional_policy(`
-		userhelper_use_user_fd($1, $1_ethereal_t)
-		userhelper_sigchld_user($1, $1_ethereal_t)
-	')
-
 	optional_policy(`
 		xserver_user_x_domain_template($1, $1_ethereal, $1_ethereal_t, $1_ethereal_tmpfs_t)
 		xserver_create_xdm_tmp_sockets($1_ethereal_t)
 	')
 	
-	ifdef(`TODO',`
-		# Why does it write this?
-		optional_policy(`
-			dontaudit sysadm_ethereal_t snmpd_var_lib_t:file write;
-		')
-		#TODO
-		gnome_application($1_ethereal, $1)
-		gnome_file_dialog($1_ethereal, $1)
-		# FIXME: policy is incomplete
-	')
-	
 ')
 
 #######################################
--- nsaserefpolicy/policy/modules/apps/ethereal.te	2008-08-07 11:15:02.000000000 -0400
+++ serefpolicy-3.5.5/policy/modules/apps/ethereal.te	2008-08-14 13:53:54.000000000 -0400
@@ -16,6 +16,13 @@
 type tethereal_tmp_t;
 files_tmp_file(tethereal_tmp_t)
 
+type ethereal_home_t;
+files_poly_member(ethereal_home_t)
+userdom_user_home_content(user, ethereal_home_t)
+
+type ethereal_tmp_t;
+files_tmp_file(ethereal_tmp_t)
+
 ########################################
 #
 # Tethereal policy
