20788N/A@@ -372,7 +372,7 @@ get_welcome_environment (GdmWelcomeSessi
20788N/A "LANG", "LANGUAGE", "LC_CTYPE", "LC_NUMERIC", "LC_TIME",
20788N/A "LC_COLLATE", "LC_MONETARY", "LC_MESSAGES", "LC_PAPER",
20788N/A "LC_NAME", "LC_ADDRESS", "LC_TELEPHONE", "LC_MEASUREMENT",
20788N/A- "LC_IDENTIFICATION", "LC_ALL", "WINDOWPATH",
20788N/A+ "LC_IDENTIFICATION", "LC_ALL", "WINDOWPATH", "AUDIODEV",
20788N/A@@ -932,6 +932,34 @@ gdm_welcome_session_spawn (GdmWelcomeSes
20788N/A+ g_debug ("Running utaudio to get AUDIODEV");
20788N/A+ g_warning ("Could not run utaudio: %s", error->message);
20788N/A+ if (g_file_test (out, G_FILE_TEST_EXISTS)) {
20788N/A+ g_setenv ("AUDIODEV", out, TRUE);
20788N/A+ g_warning ("The audio device file %s doesn't exist", out);
20788N/A env = get_welcome_environment (welcome_session, TRUE);
20788N/A@@ -941,6 +969,67 @@ gdm_welcome_session_spawn (GdmWelcomeSes
20788N/A log_path = g_build_filename (LOGDIR, log_file, NULL);
20788N/A+ * Set ACL if running on the console or dtlocal. In this case, we know that
20788N/A+ * logindevperm will be called on authentication, which will reste the device
20788N/A+ * permissions. So there is no need to worry about checking if the ACL is
20788N/A+ * already set, or appending the same ACL to the file.
20788N/A+ if (welcome_session->priv->x11_display_device) {
20788N/A+ audiodev = g_strdup (g_getenv ("AUDIODEV"));
20788N/A+ if (g_str_has_prefix (welcome_session->priv->x11_display_device, "
/dev/vt")
20788N/A+ && g_str_equal (welcome_session->priv->x11_display_name, ":0")) {
20788N/A+ display_device = g_strdup (welcome_session->priv->x11_display_device);
20788N/A+ if (acl_flavor & _ACL_ACLENT_ENABLED) {
20788N/A+ g_debug ("Setting device permissions: ACLIENT");
20788N/A+ } else if (acl_flavor & _ACL_ACE_ENABLED) {
20788N/A+ g_debug ("Setting device permissions: ACE");
20788N/A+ g_debug ("Not setting device permissions: ACE");
20788N/A+ && g_file_test (audiodev, G_FILE_TEST_EXISTS)) {
20788N/A+ g_debug ("Changing ownership for %s", audiodev);
20788N/A+ g_debug ("Changing ownership for %sctl", audiodev);
20788N/A ret = spawn_command_line_async_as_user (welcome_session->priv->command,
20788N/A welcome_session->priv->user_name,
20788N/A welcome_session->priv->group_name,