diff -Nru gdm3-44.1/common/gdm-address.c gdm3-45~beta/common/gdm-address.c --- gdm3-44.1/common/gdm-address.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/common/gdm-address.c 2023-08-29 16:11:10.000000000 +0000 @@ -236,19 +236,15 @@ void gdm_address_debug (GdmAddress *address) { - char *hostname = NULL; - char *host = NULL; - char *port = NULL; + g_autofree char *hostname = NULL; + g_autofree char *host = NULL; + g_autofree char *port = NULL; g_return_if_fail (address != NULL); gdm_address_get_numeric_info (address, &host, &port); _gdm_address_debug (address, host, port); - - g_free (hostname); - g_free (host); - g_free (port); } gboolean diff -Nru gdm3-44.1/common/gdm-common.c gdm3-45~beta/common/gdm-common.c --- gdm3-44.1/common/gdm-common.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/common/gdm-common.c 2023-08-29 16:11:10.000000000 +0000 @@ -321,8 +321,10 @@ close (fd); return bytes; } + static gboolean create_transient_display (GDBusConnection *connection, + GCancellable *cancellable, GError **error) { GError *local_error = NULL; @@ -338,10 +340,10 @@ G_VARIANT_TYPE ("(o)"), G_DBUS_CALL_FLAGS_NONE, -1, - NULL, &local_error); + cancellable, &local_error); if (reply == NULL) { g_warning ("Unable to create transient display: %s", local_error->message); - g_propagate_error (error, local_error); + g_propagate_prefixed_error (error, local_error, _("Unable to create transient display: ")); return FALSE; } @@ -354,6 +356,7 @@ gboolean gdm_activate_session_by_id (GDBusConnection *connection, + GCancellable *cancellable, const char *seat_id, const char *session_id) { @@ -373,7 +376,7 @@ NULL, G_DBUS_CALL_FLAGS_NONE, -1, - NULL, &local_error); + cancellable, &local_error); if (reply == NULL) { g_warning ("Unable to activate session: %s", local_error->message); g_error_free (local_error); @@ -392,9 +395,6 @@ gboolean ret; int res, i; char **sessions; - char *service_id; - char *service_class; - char *state; g_return_val_if_fail (session_id != NULL, FALSE); @@ -411,6 +411,9 @@ } for (i = 0; sessions[i]; i ++) { + char *service_id = NULL; + char *service_class = NULL; + char *state = NULL; res = sd_session_get_class (sessions[i], &service_class); if (res < 0) { @@ -429,8 +432,8 @@ free (service_class); - ret = sd_session_get_state (sessions[i], &state); - if (ret < 0) { + res = sd_session_get_state (sessions[i], &state); + if (res < 0) { if (res == -ENXIO) continue; @@ -483,6 +486,7 @@ static gboolean goto_login_session (GDBusConnection *connection, + GCancellable *cancellable, GError **error) { gboolean ret; @@ -520,7 +524,7 @@ res = gdm_get_login_window_session_id (seat_id, &session_id); if (res && session_id != NULL) { - res = gdm_activate_session_by_id (connection, seat_id, session_id); + res = gdm_activate_session_by_id (connection, cancellable, seat_id, session_id); if (res) { ret = TRUE; @@ -528,7 +532,7 @@ } if (! ret && g_strcmp0 (seat_id, "seat0") == 0) { - res = create_transient_display (connection, error); + res = create_transient_display (connection, cancellable, error); if (res) { ret = TRUE; } @@ -541,20 +545,20 @@ } gboolean -gdm_goto_login_session (GError **error) +gdm_goto_login_session (GCancellable *cancellable, + GError **error) { - GError *local_error; - GDBusConnection *connection; + g_autoptr(GDBusConnection) connection = NULL; + g_autoptr(GError) local_error = NULL; - local_error = NULL; - connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &local_error); + connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, cancellable, &local_error); if (connection == NULL) { g_debug ("Failed to connect to the D-Bus daemon: %s", local_error->message); - g_propagate_error (error, local_error); + g_propagate_error (error, g_steal_pointer (&local_error)); return FALSE; } - return goto_login_session (connection, error); + return goto_login_session (connection, cancellable, error); } static void @@ -578,7 +582,7 @@ GHashTable *hash; struct passwd *pwent; - env = g_ptr_array_new (); + env = g_ptr_array_new_with_free_func (g_free); /* create a hash table of current environment, then update keys has necessary */ hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); @@ -724,7 +728,6 @@ &status, &error); - g_ptr_array_foreach (env, (GFunc)g_free, NULL); g_ptr_array_free (env, TRUE); g_strfreev (argv); diff -Nru gdm3-44.1/common/gdm-common.h gdm3-45~beta/common/gdm-common.h --- gdm3-44.1/common/gdm-common.h 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/common/gdm-common.h 2023-08-29 16:11:10.000000000 +0000 @@ -67,14 +67,18 @@ char *gdm_generate_random_bytes (gsize size, GError **error); + gboolean gdm_get_login_window_session_id (const char *seat_id, char **session_id); -gboolean gdm_goto_login_session (GError **error); + +gboolean gdm_goto_login_session (GCancellable *cancellable, + GError **error); GPtrArray *gdm_get_script_environment (const char *username, const char *display_name, const char *display_hostname, const char *display_x11_authority_file); + gboolean gdm_run_script (const char *dir, const char *username, const char *display_name, @@ -83,13 +87,15 @@ gboolean gdm_shell_var_is_valid_char (char c, gboolean first); + char * gdm_shell_expand (const char *str, GdmExpandVarFunc expand_func, gpointer user_data); -gboolean gdm_activate_session_by_id (GDBusConnection *connection, - const char *seat_id, - const char *session_id); +gboolean gdm_activate_session_by_id (GDBusConnection *connection, + GCancellable *cancellable, + const char *seat_id, + const char *session_id); void gdm_load_env_d (GdmLoadEnvVarFunc load_env_func, GdmExpandVarFunc expand_func, diff -Nru gdm3-44.1/common/gdm-common-unknown-origin.h gdm3-45~beta/common/gdm-common-unknown-origin.h --- gdm3-44.1/common/gdm-common-unknown-origin.h 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/common/gdm-common-unknown-origin.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- - * - * (c) 2000 Eazel, Inc. - * (c) 2001,2002 George Lebl - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef _GDM_COMMON_UNKNOWN_H -#define _GDM_COMMON_UNKNOWN_H - -#include -#include -#include -#include - -G_BEGIN_DECLS - - -G_END_DECLS - -#endif /* _GDM_COMMON_UNKNOWN_H */ diff -Nru gdm3-44.1/common/gdm-log.h gdm3-45~beta/common/gdm-log.h --- gdm3-44.1/common/gdm-log.h 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/common/gdm-log.h 2023-08-29 16:11:10.000000000 +0000 @@ -33,15 +33,6 @@ void gdm_log_init (void); void gdm_log_shutdown (void); -/* compatibility */ -#define gdm_fail g_critical -#define gdm_error g_warning -#define gdm_info g_message -#define gdm_debug g_debug - -#define gdm_assert g_assert -#define gdm_assert_not_reached g_assert_not_reached - G_END_DECLS #endif /* __GDM_LOG_H */ diff -Nru gdm3-44.1/common/gdm-profile.c gdm3-45~beta/common/gdm-profile.c --- gdm3-44.1/common/gdm-profile.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/common/gdm-profile.c 2023-08-29 16:11:10.000000000 +0000 @@ -41,8 +41,8 @@ ...) { va_list args; - char *str; - char *formatted; + g_autofree char *str = NULL; + g_autofree char *formatted = NULL; const char *prgname; if (format == NULL) { @@ -68,8 +68,5 @@ formatted); } - g_free (formatted); - g_access (str, F_OK); - g_free (str); } diff -Nru gdm3-44.1/common/gdm-settings-desktop-backend.c gdm3-45~beta/common/gdm-settings-desktop-backend.c --- gdm3-44.1/common/gdm-settings-desktop-backend.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/common/gdm-settings-desktop-backend.c 2023-08-29 16:11:10.000000000 +0000 @@ -62,15 +62,14 @@ const char *filename) { gboolean res; - GError *error; - char *contents; + g_autoptr(GError) error = NULL; + g_autofree char *contents = NULL; g_free (backend->filename); backend->filename = g_strdup (filename); backend->key_file = g_key_file_new (); - error = NULL; res = g_key_file_load_from_file (backend->key_file, backend->filename, G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS, @@ -83,7 +82,6 @@ if (contents != NULL) { g_debug ("GdmSettings: %s is:\n%s\n", backend->filename, contents); - g_free (contents); } } @@ -135,21 +133,18 @@ char **locale, char **value) { - char **split1; - char **split2; + g_auto(GStrv) split1 = NULL; + g_auto(GStrv) split2 = NULL; char *g; char *k; char *l; char *v; char *tmp1; char *tmp2; - gboolean ret; g_return_val_if_fail (keystring != NULL, FALSE); - ret = FALSE; g = k = v = l = NULL; - split1 = split2 = NULL; if (group != NULL) { *group = g; @@ -173,7 +168,7 @@ || split1 [0][0] == '\0' || split1 [1][0] == '\0') { g_warning ("GdmSettingsDesktopBackend: invalid key: %s", keystring); - goto out; + return FALSE; } g = split1 [0]; @@ -194,8 +189,6 @@ *tmp1 = '\0'; } - ret = TRUE; - if (group != NULL) { *group = g_strdup (g); } @@ -208,12 +201,8 @@ if (value != NULL) { *value = g_strdup (v); } - out: - g_strfreev (split1); - g_strfreev (split2); - - return ret; + return TRUE; } static gboolean @@ -222,55 +211,44 @@ char **value, GError **error) { - GError *local_error; - char *val; - char *g; - char *k; - char *l; - gboolean ret; + g_autoptr(GError) local_error = NULL; + g_autofree char *val = NULL; + g_autofree char *g = NULL; + g_autofree char *k = NULL; + g_autofree char *l = NULL; g_return_val_if_fail (GDM_IS_SETTINGS_BACKEND (backend), FALSE); g_return_val_if_fail (key != NULL, FALSE); g_return_val_if_fail (value != NULL, FALSE); - ret = FALSE; *value = NULL; - val = g = k = l = NULL; /*GDM_SETTINGS_BACKEND_CLASS (gdm_settings_desktop_backend_parent_class)->get_value (display);*/ if (! parse_key_string (key, &g, &k, &l, NULL)) { g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found"); - goto out; + return FALSE; } /*g_debug ("Getting key: %s %s %s", g, k, l);*/ - local_error = NULL; val = g_key_file_get_value (GDM_SETTINGS_DESKTOP_BACKEND (backend)->key_file, g, k, &local_error); if (local_error != NULL) { - g_error_free (local_error); g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found"); - goto out; + return FALSE; } *value = g_strdup (val); - ret = TRUE; - out: - g_free (val); - g_free (g); - g_free (k); - g_free (l); - return ret; + return TRUE; } static void save_settings (GdmSettingsDesktopBackend *backend) { - GError *local_error; - char *contents; + g_autoptr(GError) local_error = NULL; + g_autofree char *contents = NULL; gsize length; if (! backend->dirty) { @@ -279,28 +257,21 @@ g_debug ("Saving settings to %s", backend->filename); - local_error = NULL; contents = g_key_file_to_data (backend->key_file, &length, &local_error); if (local_error != NULL) { g_warning ("Unable to save settings: %s", local_error->message); - g_error_free (local_error); return; } - local_error = NULL; g_file_set_contents (backend->filename, contents, length, &local_error); if (local_error != NULL) { g_warning ("Unable to save settings: %s", local_error->message); - g_error_free (local_error); - g_free (contents); return; } - g_free (contents); - backend->dirty = FALSE; } @@ -333,11 +304,10 @@ const char *value, GError **error) { - GError *local_error; - char *old_val; - char *g; - char *k; - char *l; + g_autofree char *old_val = NULL; + g_autofree char *g = NULL; + g_autofree char *k = NULL; + g_autofree char *l = NULL; g_return_val_if_fail (GDM_IS_SETTINGS_BACKEND (backend), FALSE); g_return_val_if_fail (key != NULL, FALSE); @@ -349,17 +319,12 @@ return FALSE; } - local_error = NULL; old_val = g_key_file_get_value (GDM_SETTINGS_DESKTOP_BACKEND (backend)->key_file, g, k, - &local_error); - if (local_error != NULL) { - g_error_free (local_error); - } + NULL); /*g_debug ("Setting key: %s %s %s", g, k, l);*/ - local_error = NULL; g_key_file_set_value (GDM_SETTINGS_DESKTOP_BACKEND (backend)->key_file, g, k, @@ -370,8 +335,6 @@ gdm_settings_backend_value_changed (backend, key, old_val, value); - g_free (old_val); - return TRUE; } diff -Nru gdm3-44.1/common/gdm-settings-direct.c gdm3-45~beta/common/gdm-settings-direct.c --- gdm3-44.1/common/gdm-settings-direct.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/common/gdm-settings-direct.c 2023-08-29 16:11:10.000000000 +0000 @@ -68,18 +68,11 @@ get_value (const char *key, char **value) { - GError *error; - char *str; + g_autofree char *str = NULL; gboolean res; - error = NULL; - res = gdm_settings_get_value (settings_object, key, &str, &error); + res = gdm_settings_get_value (settings_object, key, &str, NULL); if (! res) { - if (error != NULL) { - g_error_free (error); - } else { - } - return FALSE; } @@ -87,8 +80,6 @@ *value = g_strdup (str); } - g_free (str); - return TRUE; } @@ -99,7 +90,7 @@ GdmSettingsEntry *entry; gboolean ret; gboolean res; - char *str; + g_autofree char *str = NULL; g_return_val_if_fail (key != NULL, FALSE); g_return_val_if_fail (value != NULL, FALSE); @@ -118,8 +109,6 @@ ret = gdm_settings_parse_value_as_integer (str, value); - g_free (str); - return ret; } @@ -150,7 +139,7 @@ GdmSettingsEntry *entry; gboolean ret; gboolean res; - char *str; + g_autofree char *str = NULL; g_return_val_if_fail (key != NULL, FALSE); g_return_val_if_fail (value != NULL, FALSE); @@ -169,8 +158,6 @@ ret = gdm_settings_parse_value_as_boolean (str, value); - g_free (str); - return ret; } @@ -181,7 +168,7 @@ GdmSettingsEntry *entry; gboolean ret; gboolean res; - char *str; + g_autofree char *str = NULL; g_return_val_if_fail (key != NULL, FALSE); g_return_val_if_fail (value != NULL, FALSE); @@ -202,8 +189,6 @@ *value = g_strdup (str); - g_free (str); - return ret; } diff -Nru gdm3-44.1/common/meson.build gdm3-45~beta/common/meson.build --- gdm3-44.1/common/meson.build 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/common/meson.build 2023-08-29 16:11:10.000000000 +0000 @@ -11,7 +11,7 @@ ) libgdmcommon_deps = [ - libsystemd_dep, + logind_dep, gobject_dep, gio_dep, gio_unix_dep, diff -Nru gdm3-44.1/daemon/gdm-dbus-util.c gdm3-45~beta/daemon/gdm-dbus-util.c --- gdm3-44.1/daemon/gdm-dbus-util.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/daemon/gdm-dbus-util.c 2023-08-29 16:11:10.000000000 +0000 @@ -52,8 +52,8 @@ GDBusConnection *new_connection, gpointer user_data) { + g_autoptr(GDBusNodeInfo) bus_info = NULL; GDBusInterfaceVTable bus_vtable = { handle_bus_method }; - GDBusNodeInfo *bus_info; bus_info = g_dbus_node_info_new_for_xml (dbus_introspection, NULL); @@ -65,7 +65,6 @@ bus_info->interfaces[0], &bus_vtable, NULL, NULL, NULL); - g_dbus_node_info_unref (bus_info); /* We're not handling the signal */ return FALSE; @@ -75,9 +74,9 @@ gdm_dbus_setup_private_server (GDBusAuthObserver *observer, GError **error) { - char *guid; + g_autofree char *guid = NULL; const char *client_address; - GDBusServer *server; + g_autoptr(GDBusServer) server = NULL; guid = g_dbus_generate_guid (); @@ -99,9 +98,7 @@ G_CALLBACK (handle_connection), NULL); - g_free (guid); - - return server; + return g_steal_pointer (&server); } gboolean @@ -109,9 +106,8 @@ pid_t *out_pid, GError **error) { - GDBusConnection *bus; - GVariant *reply; - gboolean retval = FALSE; + g_autoptr(GDBusConnection) bus = NULL; + g_autoptr(GVariant) reply = NULL; unsigned int v; g_return_val_if_fail (system_bus_name != NULL, FALSE); @@ -133,18 +129,13 @@ -1, NULL, error); if (reply == NULL) { - goto out; + return FALSE; } g_variant_get (reply, "(u)", &v); *out_pid = v; - g_variant_unref (reply); - - retval = TRUE; - out: - g_object_unref (bus); - return retval; + return TRUE; } gboolean @@ -152,9 +143,8 @@ uid_t *out_uid, GError **error) { - GDBusConnection *bus; - GVariant *reply; - gboolean retval = FALSE; + g_autoptr(GDBusConnection) bus = NULL; + g_autoptr(GVariant) reply = NULL; unsigned int v; g_return_val_if_fail (system_bus_name != NULL, FALSE); @@ -176,18 +166,13 @@ -1, NULL, error); if (reply == NULL) { - goto out; + return FALSE; } g_variant_get (reply, "(u)", &v); *out_uid = v; - g_variant_unref (reply); - - retval = TRUE; - out: - g_object_unref (bus); - return retval; + return TRUE; } void diff -Nru gdm3-44.1/daemon/gdm-display-access-file.c gdm3-45~beta/daemon/gdm-display-access-file.c --- gdm3-44.1/daemon/gdm-display-access-file.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/daemon/gdm-display-access-file.c 2023-08-29 16:11:10.000000000 +0000 @@ -222,7 +222,7 @@ static void clean_up_stale_auth_subdirs (void) { - GDir *dir; + g_autoptr(GDir) dir = NULL; const char *filename; dir = g_dir_open (GDM_XAUTH_DIR, 0, NULL); @@ -232,16 +232,14 @@ } while ((filename = g_dir_read_name (dir)) != NULL) { - char *path; + g_autofree char *path = NULL; path = g_build_filename (GDM_XAUTH_DIR, filename, NULL); /* Will only succeed if the directory is empty */ g_rmdir (path); - g_free (path); } - g_dir_close (dir); } static FILE * @@ -249,9 +247,9 @@ char **filename, GError **error) { - char *template; + g_autofree char *template = NULL; + g_autofree char *auth_filename = NULL; const char *dir_name; - char *auth_filename; int fd; FILE *fp; uid_t uid; @@ -261,11 +259,6 @@ *filename = NULL; - template = NULL; - auth_filename = NULL; - fp = NULL; - fd = -1; - /* Create directory if not exist, then set permission 0711 and ownership root:gdm */ if (g_file_test (GDM_XAUTH_DIR, G_FILE_TEST_IS_DIR) == FALSE) { g_remove (GDM_XAUTH_DIR); @@ -274,7 +267,7 @@ G_FILE_ERROR, g_file_error_from_errno (errno), g_strerror (errno)); - goto out; + return NULL; } g_chmod (GDM_XAUTH_DIR, 0711); @@ -284,7 +277,7 @@ GDM_DISPLAY_ERROR_GETTING_USER_INFO, _("Could not find user “%s” on system"), GDM_USERNAME); - goto out; + return NULL; } if (chown (GDM_XAUTH_DIR, 0, gid) != 0) { @@ -305,8 +298,7 @@ GDM_DISPLAY_ERROR_GETTING_USER_INFO, _("Could not find user “%s” on system"), username); - goto out; - + return NULL; } template = g_strdup_printf (GDM_XAUTH_DIR @@ -324,7 +316,7 @@ "Unable to create temp dir from tempalte '%s': %s", template, g_strerror (errno)); - goto out; + return NULL; } g_debug ("GdmDisplayAccessFile: chowning %s to %u:%u", @@ -337,7 +329,7 @@ "Unable to change permission of '%s': %s", dir_name, g_strerror (errno)); - goto out; + return NULL; } auth_filename = g_build_filename (dir_name, "database", NULL); @@ -356,7 +348,7 @@ "Unable to open '%s': %s", auth_filename, g_strerror (errno)); - goto out; + return NULL; } g_debug ("GdmDisplayAccessFile: chowning %s to %u:%u", auth_filename, (guint)uid, (guint)gid); @@ -369,8 +361,7 @@ auth_filename, g_strerror (errno)); close (fd); - fd = -1; - goto out; + return NULL; } /* now open up permissions on per-session directory */ @@ -385,22 +376,12 @@ g_file_error_from_errno (errno), g_strerror (errno)); close (fd); - fd = -1; - goto out; + return NULL; } - *filename = auth_filename; - auth_filename = NULL; - - /* don't close it */ - fd = -1; -out: - g_free (template); - g_free (auth_filename); - if (fd != -1) { - close (fd); - } + *filename = g_steal_pointer (&auth_filename); + /* don't close fd on purpose */ return fp; } @@ -408,19 +389,18 @@ gdm_display_access_file_open (GdmDisplayAccessFile *file, GError **error) { - GError *create_error; + g_autoptr(GError) create_error = NULL; g_return_val_if_fail (GDM_IS_DISPLAY_ACCESS_FILE (file), FALSE); g_return_val_if_fail (file->fp == NULL, FALSE); g_return_val_if_fail (file->path == NULL, FALSE); - create_error = NULL; file->fp = _create_xauth_file_for_user (file->username, &file->path, &create_error); if (file->fp == NULL) { - g_propagate_error (error, create_error); + g_propagate_error (error, g_steal_pointer (&create_error)); return FALSE; } @@ -477,7 +457,7 @@ gsize *cookie_size, GError **error) { - GError *add_error; + g_autoptr(GError) add_error = NULL; gboolean display_added; g_return_val_if_fail (GDM_IS_DISPLAY_ACCESS_FILE (file), FALSE); @@ -485,12 +465,11 @@ g_return_val_if_fail (display != NULL, FALSE); g_return_val_if_fail (cookie != NULL, FALSE); - add_error = NULL; *cookie = gdm_generate_random_bytes (GDM_DISPLAY_ACCESS_COOKIE_SIZE, &add_error); if (*cookie == NULL) { - g_propagate_error (error, add_error); + g_propagate_error (error, g_steal_pointer (&add_error)); return FALSE; } @@ -503,7 +482,7 @@ if (!display_added) { g_free (*cookie); *cookie = NULL; - g_propagate_error (error, add_error); + g_propagate_error (error, g_steal_pointer (&add_error)); return FALSE; } @@ -574,7 +553,7 @@ void gdm_display_access_file_close (GdmDisplayAccessFile *file) { - char *auth_dir; + g_autofree char *auth_dir = NULL; g_return_if_fail (GDM_IS_DISPLAY_ACCESS_FILE (file)); g_return_if_fail (file->fp != NULL); @@ -598,7 +577,6 @@ auth_dir, g_strerror (errno)); } - g_free (auth_dir); } g_free (file->path); diff -Nru gdm3-44.1/daemon/gdm-display.c gdm3-45~beta/daemon/gdm-display.c --- gdm3-44.1/daemon/gdm-display.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/daemon/gdm-display.c 2023-08-29 16:11:10.000000000 +0000 @@ -193,8 +193,8 @@ gdm_display_create_authority (GdmDisplay *self) { GdmDisplayPrivate *priv; - GdmDisplayAccessFile *access_file; - GError *error; + g_autoptr(GdmDisplayAccessFile) access_file = NULL; + g_autoptr(GError) error = NULL; gboolean res; g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); @@ -202,12 +202,10 @@ priv = gdm_display_get_instance_private (self); g_return_val_if_fail (priv->access_file == NULL, FALSE); - error = NULL; access_file = _create_access_file_for_user (self, GDM_USERNAME, &error); if (access_file == NULL) { g_critical ("could not create display access file: %s", error->message); - g_error_free (error); return FALSE; } @@ -220,15 +218,12 @@ &error); if (! res) { - g_critical ("could not add display to access file: %s", error->message); - g_error_free (error); gdm_display_access_file_close (access_file); - g_object_unref (access_file); return FALSE; } - priv->access_file = access_file; + priv->access_file = g_steal_pointer (&access_file); return TRUE; } @@ -254,8 +249,8 @@ GError **error) { GdmDisplayPrivate *priv; - GdmDisplayAccessFile *access_file; - GError *access_file_error; + g_autoptr(GdmDisplayAccessFile) access_file = NULL; + g_autoptr(GError) access_file_error = NULL; gboolean res; int i; @@ -280,13 +275,12 @@ g_debug ("GdmDisplay: Adding user authorization for %s", username); - access_file_error = NULL; access_file = _create_access_file_for_user (self, username, &access_file_error); if (access_file == NULL) { - g_propagate_error (error, access_file_error); + g_propagate_error (error, g_steal_pointer (&access_file_error)); return FALSE; } @@ -299,14 +293,13 @@ g_debug ("GdmDisplay: Unable to add user authorization for %s: %s", username, access_file_error->message); - g_propagate_error (error, access_file_error); + g_propagate_error (error, g_steal_pointer (&access_file_error)); gdm_display_access_file_close (access_file); - g_object_unref (access_file); return FALSE; } *filename = gdm_display_access_file_get_path (access_file); - priv->user_access_file = access_file; + priv->user_access_file = g_steal_pointer (&access_file); g_debug ("GdmDisplay: Added user authorization for %s: %s", username, *filename); /* Remove access for the programs run by greeter now that the @@ -1080,13 +1073,12 @@ GDBusMethodInvocation *invocation, GdmDisplay *self) { - char *id; + g_autofree char *id = NULL; gdm_display_get_id (self, &id, NULL); gdm_dbus_display_complete_get_id (skeleton, invocation, id); - g_free (id); return TRUE; } @@ -1095,7 +1087,7 @@ GDBusMethodInvocation *invocation, GdmDisplay *self) { - char *hostname; + g_autofree char *hostname = NULL; gdm_display_get_remote_hostname (self, &hostname, NULL); @@ -1103,7 +1095,6 @@ invocation, hostname ? hostname : ""); - g_free (hostname); return TRUE; } @@ -1112,9 +1103,8 @@ GDBusMethodInvocation *invocation, GdmDisplay *self) { - char *seat_id; + g_autofree char *seat_id = NULL; - seat_id = NULL; gdm_display_get_seat_id (self, &seat_id, NULL); if (seat_id == NULL) { @@ -1122,7 +1112,6 @@ } gdm_dbus_display_complete_get_seat_id (skeleton, invocation, seat_id); - g_free (seat_id); return TRUE; } @@ -1131,13 +1120,12 @@ GDBusMethodInvocation *invocation, GdmDisplay *self) { - char *name; + g_autofree char *name = NULL; gdm_display_get_x11_display_name (self, &name, NULL); gdm_dbus_display_complete_get_x11_display_name (skeleton, invocation, name); - g_free (name); return TRUE; } @@ -1173,15 +1161,13 @@ register_display (GdmDisplay *self) { GdmDisplayPrivate *priv; - GError *error = NULL; + g_autoptr(GError) error = NULL; priv = gdm_display_get_instance_private (self); - error = NULL; priv->connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error); if (priv->connection == NULL) { g_critical ("error getting system bus: %s", error->message); - g_error_free (error); exit (EXIT_FAILURE); } @@ -1485,12 +1471,11 @@ on_launch_environment_session_opened (GdmLaunchEnvironment *launch_environment, GdmDisplay *self) { - char *session_id; + g_autofree char *session_id = NULL; g_debug ("GdmDisplay: Greeter session opened"); session_id = gdm_launch_environment_get_session_id (launch_environment); _gdm_display_set_session_id (self, session_id); - g_free (session_id); } static void @@ -1543,14 +1528,12 @@ static gboolean can_create_environment (const char *session_id) { - char *path; + g_autofree char *path = NULL; gboolean session_exists; path = g_strdup_printf (GNOME_SESSION_SESSIONS_PATH "/%s.session", session_id); session_exists = g_file_test (path, G_FILE_TEST_EXISTS); - g_free (path); - return session_exists; } @@ -1570,9 +1553,9 @@ gchar **initial_setup_argument, GError **error) { - GRegex *regex = NULL; - GMatchInfo *match_info = NULL; - gchar *match_group = NULL; + g_autoptr(GRegex) regex = NULL; + g_autoptr(GMatchInfo) match_info = NULL; + g_autofree gchar *match_group = NULL; g_return_val_if_fail (initial_setup_argument != NULL, FALSE); @@ -1582,9 +1565,6 @@ return FALSE; if (!g_regex_match (regex, contents, 0, &match_info)) { - g_free (match_info); - g_free (regex); - g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, "Could not match gnome.initial-setup= in kernel cmdline"); @@ -1594,19 +1574,13 @@ match_group = g_match_info_fetch (match_info, 1); if (!match_group) { - g_free (match_info); - g_free (regex); - g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, "Could not match gnome.initial-setup= in kernel cmdline"); return FALSE; } - *initial_setup_argument = match_group; - - g_free (match_info); - g_free (regex); + *initial_setup_argument = g_steal_pointer (&match_group); return TRUE; } @@ -1616,16 +1590,15 @@ static gboolean kernel_cmdline_initial_setup_force_state (gboolean *force_state) { - GError *error = NULL; - gchar *contents = NULL; - gchar *setup_argument = NULL; + g_autoptr(GError) error = NULL; + g_autofree gchar *contents = NULL; + g_autofree gchar *setup_argument = NULL; g_return_val_if_fail (force_state != NULL, FALSE); if (!g_file_get_contents ("/proc/cmdline", &contents, NULL, &error)) { g_debug ("GdmDisplay: Could not check kernel parameters, not forcing initial setup: %s", error->message); - g_clear_error (&error); return FALSE; } @@ -1633,16 +1606,12 @@ if (!kernel_cmdline_initial_setup_argument (contents, &setup_argument, &error)) { g_debug ("GdmDisplay: Failed to read kernel commandline: %s", error->message); - g_clear_pointer (&contents, g_free); return FALSE; } - g_clear_pointer (&contents, g_free); - /* Poor-man's check for truthy or falsey values */ *force_state = setup_argument[0] == '1'; - g_free (setup_argument); return TRUE; } @@ -1697,10 +1666,10 @@ { GdmDisplayPrivate *priv; GdmSession *session; - char *display_name; - char *seat_id; - char *hostname; - char *auth_file = NULL; + g_autofree char *display_name = NULL; + g_autofree char *seat_id = NULL; + g_autofree char *hostname = NULL; + g_autofree char *auth_file = NULL; g_return_if_fail (GDM_IS_DISPLAY (self)); @@ -1709,10 +1678,6 @@ g_debug ("GdmDisplay: Running greeter"); - display_name = NULL; - seat_id = NULL; - hostname = NULL; - g_object_get (self, "x11-display-name", &display_name, "seat-id", &seat_id, @@ -1758,11 +1723,6 @@ "display-is-initial", priv->is_initial, "supported-session-types", priv->supported_session_types, NULL); - - g_free (display_name); - g_free (seat_id); - g_free (hostname); - g_free (auth_file); } void diff -Nru gdm3-44.1/daemon/gdm-launch-environment.c gdm3-45~beta/daemon/gdm-launch-environment.c --- gdm3-44.1/daemon/gdm-launch-environment.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/daemon/gdm-launch-environment.c 2023-08-29 16:11:10.000000000 +0000 @@ -160,7 +160,7 @@ "XDG_CONFIG_DIRS", NULL }; - char *system_data_dirs; + g_autofree char *system_data_dirs = NULL; g_auto (GStrv) supported_session_types = NULL; int i; @@ -182,17 +182,13 @@ if (launch_environment->session_mode != NULL) { g_hash_table_insert (hash, g_strdup ("GNOME_SHELL_SESSION_MODE"), g_strdup (launch_environment->session_mode)); + g_hash_table_insert (hash, g_strdup ("DCONF_PROFILE"), g_strdup (launch_environment->user_name)); if (strcmp (launch_environment->session_mode, INITIAL_SETUP_SESSION_MODE) != 0) { /* gvfs is needed for fetching remote avatars in the initial setup. Disable it otherwise. */ g_hash_table_insert (hash, g_strdup ("GVFS_DISABLE_FUSE"), g_strdup ("1")); g_hash_table_insert (hash, g_strdup ("GIO_USE_VFS"), g_strdup ("local")); g_hash_table_insert (hash, g_strdup ("GVFS_REMOTE_VOLUME_MONITOR_IGNORE"), g_strdup ("1")); - - /* The locked down dconf profile should not be used for the initial setup session. - * This allows overridden values from the user profile to take effect. - */ - g_hash_table_insert (hash, g_strdup ("DCONF_PROFILE"), g_strdup ("gdm")); } } @@ -244,7 +240,6 @@ DATADIR "/gdm/greeter", DATADIR, system_data_dirs)); - g_free (system_data_dirs); g_object_get (launch_environment->session, "supported-session-types", @@ -262,7 +257,7 @@ const char *service_name, GdmLaunchEnvironment *launch_environment) { - GHashTable *hash; + g_autoptr(GHashTable) hash = NULL; GHashTableIter iter; gpointer key, value; @@ -272,7 +267,6 @@ while (g_hash_table_iter_next (&iter, &key, &value)) { gdm_session_set_environment_variable (launch_environment->session, key, value); } - g_hash_table_destroy (hash); } static void @@ -331,8 +325,8 @@ const char *service_name, GdmLaunchEnvironment *launch_environment) { - char *log_path; - char *log_file; + g_autofree char *log_path = NULL; + g_autofree char *log_file = NULL; if (launch_environment->x11_display_name != NULL) log_file = g_strdup_printf ("%s-greeter.log", launch_environment->x11_display_name); @@ -340,13 +334,11 @@ log_file = g_strdup ("greeter.log"); log_path = g_build_filename (LOGDIR, log_file, NULL); - g_free (log_file); gdm_session_setup_for_program (launch_environment->session, "gdm-launch-environment", launch_environment->user_name, log_path); - g_free (log_path); } static void @@ -354,10 +346,9 @@ const char *service_name, GdmLaunchEnvironment *launch_environment) { - GdmSession *conversation_session; + g_autoptr(GdmSession) conversation_session = NULL; - conversation_session = launch_environment->session; - launch_environment->session = NULL; + conversation_session = g_steal_pointer (&launch_environment->session); g_debug ("GdmLaunchEnvironment: conversation stopped"); @@ -368,7 +359,6 @@ if (conversation_session != NULL) { gdm_session_close (conversation_session); - g_object_unref (conversation_session); } } @@ -402,9 +392,7 @@ gboolean gdm_launch_environment_start (GdmLaunchEnvironment *launch_environment) { - gboolean res = FALSE; - GError *local_error = NULL; - GError **error = &local_error; + g_autoptr(GError) error = NULL; struct passwd *passwd_entry; uid_t uid; gid_t gid; @@ -414,10 +402,8 @@ g_debug ("GdmLaunchEnvironment: Starting..."); if (!gdm_get_pwent_for_name (launch_environment->user_name, &passwd_entry)) { - g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, - "Unknown user %s", - launch_environment->user_name); - goto out; + g_critical ("GdmLaunchEnvironment: Unknown user %s", launch_environment->user_name); + return FALSE; } uid = passwd_entry->pw_uid; @@ -425,13 +411,16 @@ g_debug ("GdmLaunchEnvironment: Setting up run time dir %s", launch_environment->runtime_dir); - if (!ensure_directory_with_uid_gid (launch_environment->runtime_dir, uid, gid, error)) { - goto out; + if (!ensure_directory_with_uid_gid (launch_environment->runtime_dir, uid, gid, &error)) { + g_critical ("GdmLaunchEnvironment: %s", error->message); + return FALSE; } /* Create the home directory too */ - if (!ensure_directory_with_uid_gid (passwd_entry->pw_dir, uid, gid, error)) - goto out; + if (!ensure_directory_with_uid_gid (passwd_entry->pw_dir, uid, gid, &error)) { + g_critical ("GdmLaunchEnvironment: %s", error->message); + return FALSE; + } launch_environment->session = gdm_session_new (launch_environment->verification_mode, uid, @@ -494,13 +483,7 @@ NULL); } - res = TRUE; - out: - if (local_error) { - g_critical ("GdmLaunchEnvironment: %s", local_error->message); - g_clear_error (&local_error); - } - return res; + return TRUE; } gboolean @@ -916,8 +899,6 @@ launch_environment = GDM_LAUNCH_ENVIRONMENT (object); - g_return_if_fail (launch_environment != NULL); - gdm_launch_environment_stop (launch_environment); if (launch_environment->session) { @@ -949,10 +930,10 @@ gboolean display_is_local) { gboolean debug = FALSE; - char *command; GdmLaunchEnvironment *launch_environment; - char **argv; - GPtrArray *args; + g_autoptr(GPtrArray) args = NULL; + g_autofree char **argv = NULL; + g_autofree char *command = NULL; gdm_settings_direct_get_boolean (GDM_KEY_DEBUG, &debug); @@ -973,9 +954,8 @@ g_ptr_array_add (args, NULL); - argv = (char **) g_ptr_array_free (args, FALSE); + argv = (char **) g_ptr_array_steal (args, NULL); command = g_strjoinv (" ", argv); - g_free (argv); launch_environment = g_object_new (GDM_TYPE_LAUNCH_ENVIRONMENT, "command", command, @@ -989,7 +969,6 @@ "runtime-dir", GDM_SCREENSHOT_DIR, NULL); - g_free (command); return launch_environment; } diff -Nru gdm3-44.1/daemon/gdm-legacy-display.c gdm3-45~beta/daemon/gdm-legacy-display.c --- gdm3-44.1/daemon/gdm-legacy-display.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/daemon/gdm-legacy-display.c 2023-08-29 16:11:10.000000000 +0000 @@ -93,14 +93,11 @@ gdm_legacy_display_prepare (GdmDisplay *display) { GdmLegacyDisplay *self = GDM_LEGACY_DISPLAY (display); - GdmLaunchEnvironment *launch_environment; - char *display_name; - char *seat_id; + g_autoptr(GdmLaunchEnvironment) launch_environment = NULL; + g_autofree char *display_name = NULL; + g_autofree gchar *seat_id = NULL; gboolean doing_initial_setup = FALSE; - display_name = NULL; - seat_id = NULL; - g_object_get (self, "x11-display-name", &display_name, "seat-id", &seat_id, @@ -122,7 +119,6 @@ } g_object_set (self, "launch-environment", launch_environment, NULL); - g_object_unref (launch_environment); if (!gdm_display_create_authority (display)) { g_warning ("Unable to set up access control for display %s", @@ -145,8 +141,8 @@ g_debug ("GdmDisplay: could not connect to display"); gdm_display_unmanage (GDM_DISPLAY (self)); } else { - GdmLaunchEnvironment *launch_environment; - char *display_device; + g_autoptr(GdmLaunchEnvironment) launch_environment = NULL; + g_autofree char *display_device = NULL; display_device = gdm_server_get_display_device (server); @@ -157,8 +153,6 @@ "x11-display-device", display_device, NULL); - g_clear_pointer(&display_device, g_free); - g_clear_object (&launch_environment); g_debug ("GdmDisplay: connected to display"); g_object_set (G_OBJECT (self), "status", GDM_DISPLAY_MANAGED, NULL); @@ -191,9 +185,9 @@ gdm_legacy_display_manage (GdmDisplay *display) { GdmLegacyDisplay *self = GDM_LEGACY_DISPLAY (display); - char *display_name; - char *auth_file; - char *seat_id; + g_autofree char *display_name = NULL; + g_autofree char *auth_file = NULL; + g_autofree char *seat_id = NULL; gboolean is_initial; gboolean res; gboolean disable_tcp; @@ -207,10 +201,6 @@ self->server = gdm_server_new (display_name, seat_id, auth_file, is_initial); - g_free (display_name); - g_free (auth_file); - g_free (seat_id); - disable_tcp = TRUE; if (gdm_settings_direct_get_boolean (GDM_KEY_DISALLOW_TCP, &disable_tcp)) { g_object_set (self->server, @@ -290,14 +280,13 @@ gdm_legacy_display_new (int display_number) { GObject *object; - char *x11_display; + g_autofree char *x11_display = NULL; x11_display = g_strdup_printf (":%d", display_number); object = g_object_new (GDM_TYPE_LEGACY_DISPLAY, "x11-display-number", display_number, "x11-display-name", x11_display, NULL); - g_free (x11_display); return GDM_DISPLAY (object); } diff -Nru gdm3-44.1/daemon/gdm-local-display.c gdm3-45~beta/daemon/gdm-local-display.c --- gdm3-44.1/daemon/gdm-local-display.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/daemon/gdm-local-display.c 2023-08-29 16:11:10.000000000 +0000 @@ -93,7 +93,6 @@ char *session_class; char *session_type; gboolean doing_initial_setup = FALSE; - gboolean failed = FALSE; seat_id = NULL; @@ -132,9 +131,6 @@ g_free (session_class); g_free (session_type); - if (failed) { - return FALSE; - } return GDM_DISPLAY_CLASS (gdm_local_display_parent_class)->prepare (display); } diff -Nru gdm3-44.1/daemon/gdm-local-display-factory.c gdm3-45~beta/daemon/gdm-local-display-factory.c --- gdm3-44.1/daemon/gdm-local-display-factory.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/daemon/gdm-local-display-factory.c 2023-08-29 16:11:10.000000000 +0000 @@ -513,8 +513,10 @@ int status; int num; char *seat_id = NULL; + char *seat_active_session = NULL; char *session_type = NULL; char *session_class = NULL; + char *session_id = NULL; gboolean is_initial = TRUE; gboolean is_local = TRUE; @@ -531,8 +533,11 @@ "is-local", &is_local, "session-type", &session_type, "session-class", &session_class, + "session-id", &session_id, NULL); + sd_seat_get_active (seat_id, &seat_active_session, NULL); + status = gdm_display_get_status (display); g_debug ("GdmLocalDisplayFactory: display status changed: %d", status); @@ -545,17 +550,18 @@ } gdm_display_factory_queue_purge_displays (GDM_DISPLAY_FACTORY (factory)); - /* if this is a local display, do a full resync. Only - * seats without displays will get created anyway. This - * ensures we get a new login screen when the user logs out, - * if there isn't one. + /* if this is a local display, ensure that we get a login + * screen when the user logs out. */ if (is_local && - (g_strcmp0 (session_class, "greeter") != 0 || factory->active_vt == GDM_INITIAL_VT)) { + ((g_strcmp0 (session_class, "greeter") != 0 && + (!seat_active_session || g_strcmp0(session_id, seat_active_session) == 0)) || + (g_strcmp0 (seat_id, "seat0") == 0 && factory->active_vt == GDM_INITIAL_VT) || + g_strcmp0 (seat_id, "seat0") != 0)) { /* reset num failures */ factory->num_failures = 0; - gdm_local_display_factory_sync_seats (factory); + ensure_display_for_seat (factory, seat_id); } break; case GDM_DISPLAY_FAILED: @@ -596,8 +602,10 @@ } g_free (seat_id); + g_free (seat_active_session); g_free (session_type); g_free (session_class); + g_free (session_id); } static gboolean @@ -633,6 +641,21 @@ return lookup_by_seat_id (id, display, user_data); } +static gboolean +lookup_managed_display_by_seat_id (const char *id, + GdmDisplay *display, + gpointer user_data) +{ + int status; + + status = gdm_display_get_status (display); + + if (status != GDM_DISPLAY_MANAGED) + return FALSE; + + return lookup_by_seat_id (id, display, user_data); +} + #ifdef HAVE_UDEV static gboolean udev_is_settled (GdmLocalDisplayFactory *factory) @@ -655,6 +678,7 @@ if (factory->seat0_graphics_check_timed_out) { g_debug ("GdmLocalDisplayFactory: udev timed out, proceeding anyway."); + g_clear_signal_handler (&factory->uevent_handler_id, factory->gudev_client); return TRUE; } @@ -676,9 +700,15 @@ while (node != NULL) { GUdevDevice *device = node->data; GList *next_node = node->next; + const gchar *id_path = g_udev_device_get_property (device, "ID_PATH"); g_autoptr (GUdevDevice) platform_device = NULL; g_autoptr (GUdevDevice) pci_device = NULL; + if (g_str_has_prefix (id_path, "platform-simple-framebuffer")) { + node = next_node; + continue; + } + platform_device = g_udev_device_get_parent_with_subsystem (device, "platform", NULL); if (platform_device != NULL) { @@ -747,7 +777,7 @@ if (is_seat0) display = gdm_display_store_find (store, lookup_prepared_display_by_seat_id, (gpointer) seat_id); else - display = gdm_display_store_find (store, lookup_by_seat_id, (gpointer) seat_id); + display = gdm_display_store_find (store, lookup_managed_display_by_seat_id, (gpointer) seat_id); return display; } @@ -758,6 +788,7 @@ { gboolean seat_supports_graphics; gboolean is_seat0; + gboolean falling_back; g_auto (GStrv) session_types = NULL; const char *legacy_session_types[] = { "x11", NULL }; GdmDisplay *display = NULL; @@ -767,13 +798,6 @@ g_debug ("GdmLocalDisplayFactory: display for seat %s requested", seat_id); - /* Ensure we don't create the same display more than once */ - display = get_display_for_seat (factory, seat_id); - if (display != NULL) { - g_debug ("GdmLocalDisplayFactory: display for %s already created", seat_id); - return; - } - /* If we already have a login window, switch to it */ if (gdm_get_login_window_session_id (seat_id, &login_session_id)) { GdmDisplay *display; @@ -789,7 +813,7 @@ g_object_set (G_OBJECT (display), "status", GDM_DISPLAY_MANAGED, NULL); g_debug ("GdmLocalDisplayFactory: session %s found, activating.", login_session_id); - gdm_activate_session_by_id (factory->connection, seat_id, login_session_id); + gdm_activate_session_by_id (factory->connection, NULL, seat_id, login_session_id); return; } } @@ -828,24 +852,16 @@ } is_seat0 = g_strcmp0 (seat_id, "seat0") == 0; - if (is_seat0) { - gboolean falling_back; - falling_back = factory->num_failures > 0; - session_types = gdm_local_display_factory_get_session_types (factory, falling_back); + falling_back = factory->num_failures > 0; + session_types = gdm_local_display_factory_get_session_types (factory, falling_back); - if (session_types == NULL) { - g_debug ("GdmLocalDisplayFactory: Both Wayland and Xorg are unavailable"); - seat_supports_graphics = FALSE; - } else { - g_debug ("GdmLocalDisplayFactory: New displays on seat0 will use %s%s", - session_types[0], falling_back? " fallback" : ""); - } + if (session_types == NULL) { + g_debug ("GdmLocalDisplayFactory: Both Wayland and Xorg are unavailable"); + seat_supports_graphics = FALSE; } else { - g_debug ("GdmLocalDisplayFactory: New displays on seat %s will use X11 fallback", seat_id); - /* Force legacy X11 for all auxiliary seats */ - seat_supports_graphics = TRUE; - session_types = g_strdupv ((char **) legacy_session_types); + g_debug ("GdmLocalDisplayFactory: New displays on seat0 will use %s%s", + session_types[0], falling_back? " fallback" : ""); } /* For seat0, we have a fallback logic to still try starting it after @@ -902,18 +918,23 @@ g_debug ("GdmLocalDisplayFactory: %s login display for seat %s requested", session_types[0], seat_id); + /* Ensure we don't create the same display more than once */ + display = get_display_for_seat (factory, seat_id); + if (display != NULL) { + g_debug ("GdmLocalDisplayFactory: display for %s already created", seat_id); + return; + } + g_debug ("GdmLocalDisplayFactory: Adding display on seat %s", seat_id); #ifdef ENABLE_USER_DISPLAY_SERVER if (g_strcmp0 (preferred_display_server, "wayland") == 0 || g_strcmp0 (preferred_display_server, "xorg") == 0) { - if (is_seat0) { - display = gdm_local_display_new (); - g_object_set (G_OBJECT (display), - "session-type", session_types[0], - "supported-session-types", session_types, - NULL); - } + display = gdm_local_display_new (); + g_object_set (G_OBJECT (display), + "session-type", session_types[0], + "supported-session-types", session_types, + NULL); } #endif @@ -1037,19 +1058,39 @@ const gchar *seat = NULL; g_autoptr(GVariant) changed_props = NULL; g_autoptr(GVariant) changed_prop = NULL; + g_autoptr(GVariant) reply = NULL; + g_autoptr(GVariant) reply_value = NULL; + g_autoptr(GError) error = NULL; g_autofree const gchar **invalidated_props = NULL; gboolean changed = FALSE; int ret; - /* Extract seat id, i.e. the last element of the object path. */ - seat = strrchr (object_path, '/'); - if (seat == NULL) + /* Acquire seat name */ + reply = g_dbus_connection_call_sync (connection, + sender_name, + object_path, + "org.freedesktop.DBus.Properties", + "Get", + g_variant_new ("(ss)", + "org.freedesktop.login1.Seat", + "Id"), + NULL, + G_DBUS_CALL_FLAGS_NONE, + -1, NULL, &error); + + if (reply == NULL) { + g_debug ("could not acquire seat name: %s", error->message); return; - seat += 1; + } + + g_variant_get (reply, "(v)", &reply_value); + + seat = g_variant_get_string (reply_value, NULL); - /* Valid seat IDs must start with seat, i.e. ignore "auto" */ - if (!g_str_has_prefix (seat, "seat")) + if (seat == NULL) { + g_debug ("seat name is not string"); return; + } g_variant_get (parameters, "(s@a{sv}^a&s)", NULL, &changed_props, &invalidated_props); @@ -1142,18 +1183,18 @@ GdmLocalDisplayFactory *factory) { GdmDisplayStore *store; - GIOStatus status; g_autofree char *tty_of_active_vt = NULL; g_autofree char *login_session_id = NULL; - g_autofree char *active_session_id = NULL; unsigned int previous_vt, new_vt, login_window_vt = 0; - int ret, n_returned; + int n_returned; g_debug ("GdmLocalDisplayFactory: received VT change event"); g_io_channel_seek_position (source, 0, G_SEEK_SET, NULL); if (condition & G_IO_PRI) { g_autoptr (GError) error = NULL; + GIOStatus status; + status = g_io_channel_read_line (source, &tty_of_active_vt, NULL, NULL, &error); if (error != NULL) { @@ -1216,7 +1257,7 @@ /* if the old VT was running a wayland login screen kill it */ if (gdm_get_login_window_session_id ("seat0", &login_session_id)) { - ret = sd_session_get_vt (login_session_id, &login_window_vt); + int ret = sd_session_get_vt (login_session_id, &login_window_vt); if (ret == 0 && login_window_vt != 0) { g_debug ("GdmLocalDisplayFactory: VT of login window is %u", login_window_vt); if (login_window_vt == previous_vt) { diff -Nru gdm3-44.1/daemon/gdm-manager.c gdm3-45~beta/daemon/gdm-manager.c --- gdm3-44.1/daemon/gdm-manager.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/daemon/gdm-manager.c 2023-08-29 16:11:10.000000000 +0000 @@ -608,7 +608,7 @@ if (existing_session != NULL) { ssid_to_activate = gdm_session_get_session_id (existing_session); if (seat_id != NULL) { - res = gdm_activate_session_by_id (manager->connection, seat_id, ssid_to_activate); + res = gdm_activate_session_by_id (manager->connection, NULL, seat_id, ssid_to_activate); if (! res) { g_debug ("GdmManager: unable to activate session: %s", ssid_to_activate); goto out; @@ -979,7 +979,7 @@ if (pid != pid_of_client) { const char *session_id; - char *client_session_id; + g_autofree char *client_session_id = NULL; /* rejected client isn't the process that started the * transient reauthentication session. If it's not even from the @@ -1506,7 +1506,7 @@ { int status; int display_number = -1; - char *session_type = NULL; + g_autofree char *session_type = NULL; gboolean doing_initial_setup = FALSE; #ifdef WITH_PLYMOUTH gboolean display_is_local = FALSE; @@ -1531,14 +1531,13 @@ case GDM_DISPLAY_MANAGED: if ((display_number == -1 && status == GDM_DISPLAY_PREPARED) || (display_number != -1 && status == GDM_DISPLAY_MANAGED)) { - char *session_class; + g_autofree char *session_class = NULL; g_object_get (display, "session-class", &session_class, NULL); if (g_strcmp0 (session_class, "greeter") == 0) set_up_session (manager, display); - g_free (session_class); } break; case GDM_DISPLAY_FAILED: @@ -1609,14 +1608,14 @@ display = get_display_for_user_session (operation->session); if (display != NULL) { - char *auth_file; - const char *username; gboolean is_connected = FALSE; g_object_get (G_OBJECT (display), "is-connected", &is_connected, NULL); if (is_connected) { - auth_file = NULL; + char *auth_file = NULL; + const char *username; + username = gdm_session_get_username (operation->session); gdm_display_add_user_authorization (display, username, @@ -1645,8 +1644,7 @@ const char *session_id) { GdmDisplay *display; - /* at the moment we only create GdmLocalDisplay objects on seat0 */ - const char *seat_id = "seat0"; + const char *seat_id = gdm_session_get_display_seat_id (session); display = gdm_local_display_new (); diff -Nru gdm3-44.1/daemon/gdm-server.c gdm3-45~beta/daemon/gdm-server.c --- gdm3-44.1/daemon/gdm-server.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/daemon/gdm-server.c 2023-08-29 16:11:10.000000000 +0000 @@ -428,15 +428,9 @@ #ifdef ENABLE_SYSTEMD_JOURNAL if (sd_booted () > 0) { int out, err; - const char *prefix = "gdm-Xorg-"; - char *identifier; - gsize size; - - size = strlen (prefix) + strlen (server->display_name) + 1; - identifier = g_alloca (size); - strcpy (identifier, prefix); - strcat (identifier, server->display_name); - identifier[size - 1] = '\0'; + g_autofree char *identifier = NULL; + + identifier = g_strdup_printf("gdm-Xorg-%s", server->display_name); out = sd_journal_stream_fd (identifier, LOG_INFO, FALSE); if (out < 0) @@ -816,8 +810,7 @@ g_debug ("GdmServer: Stopping server"); res = gdm_signal_pid (server->pid, SIGTERM); - if (res < 0) { - } else { + if (res >= 0) { server_died (server); } diff -Nru gdm3-44.1/daemon/gdm-session.c gdm3-45~beta/daemon/gdm-session.c --- gdm3-44.1/daemon/gdm-session.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/daemon/gdm-session.c 2023-08-29 16:11:10.000000000 +0000 @@ -3187,7 +3187,7 @@ { g_return_val_if_fail (GDM_IS_SESSION (self), NULL); - return g_strdup (self->display_seat_id); + return self->display_seat_id; } const char * @@ -3363,11 +3363,8 @@ self->is_program_session? "yes" : "no", self->display_seat_id); - /* Non-seat0 sessions share their X server with their login screen - * for now. - */ if (g_strcmp0 (self->display_seat_id, "seat0") != 0) { - return GDM_SESSION_DISPLAY_MODE_REUSE_VT; + return GDM_SESSION_DISPLAY_MODE_LOGIND_MANAGED; } #ifdef ENABLE_USER_DISPLAY_SERVER diff -Nru gdm3-44.1/daemon/gdm-session-linux-auditor.c gdm3-45~beta/daemon/gdm-session-linux-auditor.c --- gdm3-44.1/daemon/gdm-session-linux-auditor.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/daemon/gdm-session-linux-auditor.c 2023-08-29 16:11:10.000000000 +0000 @@ -54,9 +54,9 @@ { GdmSessionLinuxAuditor *linux_auditor; char buf[512]; - char *username; - char *hostname; - char *display_device; + g_autofree char *username = NULL; + g_autofree char *hostname = NULL; + g_autofree char *display_device = NULL; struct passwd *pw; linux_auditor = GDM_SESSION_LINUX_AUDITOR (auditor); @@ -83,10 +83,6 @@ buf, hostname, NULL, display_device, result); } - - g_free (username); - g_free (hostname); - g_free (display_device); } static void diff -Nru gdm3-44.1/daemon/gdm-session-record.c gdm3-45~beta/daemon/gdm-session-record.c --- gdm3-44.1/daemon/gdm-session-record.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/daemon/gdm-session-record.c 2023-08-29 16:11:10.000000000 +0000 @@ -114,11 +114,9 @@ const char *x11_display_name, const char *host_name) { - char *hostname; + g_autofree char *hostname = NULL; #if defined(HAVE_UT_UT_HOST) - hostname = NULL; - /* * Set ut_host to hostname:$DISPLAY if remote, otherwise set * to $DISPLAY @@ -137,7 +135,6 @@ #ifdef HAVE_UT_UT_SYSLEN u->ut_syslen = MIN (strlen (hostname), sizeof (u->ut_host)); #endif - g_free (hostname); } #endif } diff -Nru gdm3-44.1/daemon/gdm-session-settings.c gdm3-45~beta/daemon/gdm-session-settings.c --- gdm3-44.1/daemon/gdm-session-settings.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/daemon/gdm-session-settings.c 2023-08-29 16:11:10.000000000 +0000 @@ -293,10 +293,8 @@ return; } - /* if the user doesn't have saved state, they don't have any settings worth reading */ - if (!act_user_get_saved (settings->user)) - goto out; - + /* Load settings even if the user doesn't have saved state, as they could have been + * configured in AccountsService by the administrator */ session_type = act_user_get_session_type (settings->user); session_name = act_user_get_session (settings->user); @@ -338,27 +336,22 @@ gdm_session_settings_load (GdmSessionSettings *settings, const char *username) { - ActUser *old_user; + g_autoptr(ActUser) old_user = NULL; g_return_val_if_fail (GDM_IS_SESSION_SETTINGS (settings), FALSE); g_return_val_if_fail (username != NULL, FALSE); g_return_val_if_fail (!gdm_session_settings_is_loaded (settings), FALSE); - if (settings->user != NULL) { - old_user = settings->user; - - g_signal_handlers_disconnect_by_func (G_OBJECT (settings->user), + old_user = g_steal_pointer (&settings->user); + if (old_user != NULL) { + g_signal_handlers_disconnect_by_func (G_OBJECT (old_user), G_CALLBACK (on_user_is_loaded_changed), settings); - } else { - old_user = NULL; } settings->user = act_user_manager_get_user (settings->user_manager, username); - g_clear_object (&old_user); - if (!act_user_is_loaded (settings->user)) { g_signal_connect (settings->user, "notify::is-loaded", @@ -376,7 +369,7 @@ gdm_session_settings_save (GdmSessionSettings *settings, const char *username) { - ActUser *user; + g_autoptr(ActUser) user = NULL; g_return_val_if_fail (GDM_IS_SESSION_SETTINGS (settings), FALSE); g_return_val_if_fail (username != NULL, FALSE); @@ -387,7 +380,6 @@ if (!act_user_is_loaded (user)) { - g_object_unref (user); return FALSE; } @@ -410,12 +402,10 @@ if (error != NULL) { g_debug ("GdmSessionSettings: Could not locally cache remote user: %s", error->message); - g_object_unref (user); return FALSE; } } - g_object_unref (user); return TRUE; } diff -Nru gdm3-44.1/daemon/gdm-session-solaris-auditor.c gdm3-45~beta/daemon/gdm-session-solaris-auditor.c --- gdm3-44.1/daemon/gdm-session-solaris-auditor.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/daemon/gdm-session-solaris-auditor.c 2023-08-29 16:11:10.000000000 +0000 @@ -322,11 +322,13 @@ on_username_set (GdmSessionSolarisAuditor *auditor) { char *username; - struct passwd *passwd_entry; + struct passwd *passwd_entry = NULL; g_object_get (G_OBJECT (auditor), "username", &username, NULL); - gdm_get_pwent_for_name (username, &passwd_entry); + if (username != NULL) { + gdm_get_pwent_for_name (username, &passwd_entry); + } if (passwd_entry != NULL) { auditor->uid = passwd_entry->pw_uid; diff -Nru gdm3-44.1/daemon/gdm-session-worker.c gdm3-45~beta/daemon/gdm-session-worker.c --- gdm3-44.1/daemon/gdm-session-worker.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/daemon/gdm-session-worker.c 2023-08-29 16:11:10.000000000 +0000 @@ -50,6 +50,7 @@ #include #include +#include #ifdef ENABLE_SYSTEMD_JOURNAL #include @@ -156,6 +157,7 @@ guint32 is_reauth_session : 1; guint32 display_is_local : 1; guint32 display_is_initial : 1; + guint32 seat0_has_vts : 1; guint state_change_idle_id; GdmSessionDisplayMode display_mode; @@ -439,10 +441,9 @@ static void gdm_session_worker_update_username (GdmSessionWorker *worker) { - char *username; + g_autofree char *username = NULL; gboolean res; - username = NULL; res = gdm_session_worker_get_username (worker, &username); if (res) { g_debug ("GdmSessionWorker: old-username='%s' new-username='%s'", @@ -455,13 +456,12 @@ if ((worker->username == username) || ((worker->username != NULL) && (username != NULL) && (strcmp (worker->username, username) == 0))) - goto out; + return; g_debug ("GdmSessionWorker: setting username to '%s'", username); g_free (worker->username); - worker->username = username; - username = NULL; + worker->username = g_steal_pointer (&username); gdm_dbus_worker_emit_username_changed (GDM_DBUS_WORKER (worker), worker->username); @@ -476,9 +476,6 @@ attempt_to_load_user_settings (worker, worker->username); } } - - out: - g_free (username); } static gboolean @@ -536,9 +533,9 @@ GdmChoiceList *list, char **answerp) { + g_autoptr(GVariant) choices_as_variant = NULL; + g_autoptr(GError) error = NULL; GVariantBuilder builder; - GVariant *choices_as_variant; - GError *error = NULL; gboolean res; size_t i; @@ -569,7 +566,6 @@ if (! res) { g_debug ("GdmSessionWorker: list request failed: %s", error->message); - g_clear_error (&error); } else { g_debug ("GdmSessionWorker: user selected '%s'", *answerp); } @@ -635,7 +631,7 @@ static char * convert_to_utf8 (const char *str) { - char *utf8; + g_autofree char *utf8 = NULL; utf8 = g_locale_to_utf8 (str, -1, NULL, @@ -657,7 +653,7 @@ } } - return utf8; + return g_steal_pointer (&utf8); } static gboolean @@ -665,10 +661,10 @@ const struct pam_message *query, char **response) { - char *user_answer; + g_autofree char *user_answer = NULL; + g_autofree char *utf8_msg = NULL; + g_autofree char *msg = NULL; gboolean res; - char *utf8_msg; - char *msg; if (response != NULL) { *response = NULL; @@ -689,7 +685,6 @@ worker->cancelled = FALSE; worker->timed_out = FALSE; - user_answer = NULL; switch (query->msg_style) { case PAM_PROMPT_ECHO_ON: res = gdm_session_worker_ask_question (worker, utf8_msg, &user_answer); @@ -707,7 +702,6 @@ case PAM_RADIO_TYPE: msg = g_strdup_printf ("%s (yes/no)", utf8_msg); res = gdm_session_worker_ask_question (worker, msg, &user_answer); - g_free (msg); break; #endif default: @@ -733,15 +727,12 @@ } memset (user_answer, '\0', strlen (user_answer)); - g_free (user_answer); g_debug ("GdmSessionWorker: trying to get updated username"); res = TRUE; } - g_free (utf8_msg); - return res; } @@ -1017,23 +1008,23 @@ fd = worker->session_tty_fd; + handle_terminal_vt_switches (worker, fd); + g_debug ("GdmSessionWorker: first setting graphics mode to prevent flicker"); if (ioctl (fd, KDSETMODE, KD_GRAPHICS) < 0) { g_debug ("GdmSessionWorker: couldn't set graphics mode: %m"); } - - /* It's possible that the current VT was left in a broken - * combination of states (KD_GRAPHICS with VT_AUTO), that - * can't be switched away from. This call makes sure things - * are set in a way that VT_ACTIVATE should work and - * VT_WAITACTIVE shouldn't hang. - */ - fix_terminal_vt_mode (worker, active_vt_tty_fd); } else { fd = active_vt_tty_fd; } - handle_terminal_vt_switches (worker, fd); + /* It's possible that the current VT was left in a broken + * combination of states (KD_GRAPHICS with VT_AUTO), that + * can't be switched away from. This call makes sure things + * are set in a way that VT_ACTIVATE should work and + * VT_WAITACTIVE shouldn't hang. + */ + fix_terminal_vt_mode (worker, active_vt_tty_fd); if (ioctl (fd, VT_GETSTATE, &vt_state) < 0) { g_debug ("GdmSessionWorker: couldn't get current VT: %m"); @@ -1235,10 +1226,13 @@ g_debug ("GdmSessionWorker: state SETUP_COMPLETE"); gdm_session_worker_set_state (worker, GDM_SESSION_WORKER_STATE_SETUP_COMPLETE); - /* Temporarily set PAM_TTY with the login VT, - PAM_TTY will be reset with the users VT right before the user session is opened */ - g_snprintf (tty_string, 256, "/dev/tty%d", GDM_INITIAL_VT); - pam_set_item (worker->pam_handle, PAM_TTY, tty_string); + if (g_strcmp0 (seat_id, "seat0") == 0 && worker->seat0_has_vts) { + /* Temporarily set PAM_TTY with the login VT, + PAM_TTY will be reset with the users VT right before the user session is opened */ + g_snprintf (tty_string, 256, "/dev/tty%d", GDM_INITIAL_VT); + pam_set_item (worker->pam_handle, PAM_TTY, tty_string); + } + if (!display_is_local) worker->password_is_required = TRUE; @@ -1385,8 +1379,8 @@ const char *key, const char *value) { + g_autofree char *environment_entry = NULL; int error_code; - char *environment_entry; if (value != NULL) { environment_entry = g_strdup_printf ("%s=%s", key, value); @@ -1404,7 +1398,6 @@ pam_strerror (worker->pam_handle, error_code)); } g_debug ("GdmSessionWorker: Set PAM environment variable: '%s'", environment_entry); - g_free (environment_entry); } static char * @@ -1575,19 +1568,16 @@ gdm_session_worker_accredit_user (GdmSessionWorker *worker, GError **error) { + g_autofree char *shell = NULL; + g_autofree char *home = NULL; gboolean ret; gboolean res; uid_t uid; gid_t gid; - char *shell; - char *home; int error_code; ret = FALSE; - home = NULL; - shell = NULL; - if (worker->username == NULL) { g_debug ("GdmSessionWorker: Username not set"); error_code = PAM_USER_UNKNOWN; @@ -1664,8 +1654,6 @@ ret = TRUE; out: - g_free (home); - g_free (shell); if (ret) { g_debug ("GdmSessionWorker: state ACCREDITED"); ret = TRUE; @@ -1740,7 +1728,7 @@ if (worker->session_vt == GDM_INITIAL_VT) return; - if (g_strcmp0 (worker->display_seat_id, "seat0") != 0) + if (g_strcmp0 (worker->display_seat_id, "seat0") != 0 || !worker->seat0_has_vts) return; #ifdef ENABLE_USER_DISPLAY_SERVER @@ -1828,8 +1816,8 @@ int i; for (i = n_copies - 1; i > 0; i--) { - char *name_n; - char *name_n1; + g_autofree char *name_n = NULL; + g_autofree char *name_n1 = NULL; name_n = g_strdup_printf ("%s.%d", path, i); if (i > 1) { @@ -1840,9 +1828,6 @@ g_unlink (name_n); g_rename (name_n1, name_n); - - g_free (name_n1); - g_free (name_n); } g_unlink (path); @@ -1858,20 +1843,18 @@ fd = g_open (filename, O_WRONLY | O_APPEND | O_CREAT, 0600); if (fd < 0) { - char *temp_name; + g_autofree char *temp_name = NULL; temp_name = g_strdup_printf ("%s.XXXXXXXX", filename); fd = g_mkstemp (temp_name); if (fd < 0) { - g_free (temp_name); goto out; } g_warning ("session log '%s' is not appendable, logging session to '%s' instead.\n", filename, temp_name); - g_free (temp_name); } else { if (ftruncate (fd, 0) < 0) { close (fd); @@ -1900,36 +1883,32 @@ _open_user_session_log (const char *dir) { int fd; - char *filename; + g_autofree char *filename = NULL; filename = g_build_filename (dir, GDM_SESSION_LOG_FILENAME, NULL); if (g_access (dir, R_OK | W_OK | X_OK) == 0 && _is_loggable_file (filename)) { - char *filename_old; + g_autofree char *filename_old = NULL; filename_old = g_strdup_printf ("%s.old", filename); g_rename (filename, filename_old); - g_free (filename_old); } fd = g_open (filename, O_RDWR | O_APPEND | O_CREAT, 0600); if (fd < 0) { - char *temp_name; + g_autofree char *temp_name = NULL; temp_name = g_strdup_printf ("%s.XXXXXXXX", filename); fd = g_mkstemp (temp_name); if (fd < 0) { - g_free (temp_name); goto out; } g_warning ("session log '%s' is not appendable, logging session to '%s' instead.\n", filename, temp_name); - g_free (filename); - filename = temp_name; } else { if (ftruncate (fd, 0) < 0) { close (fd); @@ -1944,10 +1923,7 @@ goto out; } - out: - g_free (filename); - if (fd < 0) { g_warning ("unable to log session"); fd = g_open ("/dev/null", O_RDWR); @@ -1978,7 +1954,7 @@ /* If we're in new vt mode, jump to the new vt now. There's no need to jump for * the other two modes: in the logind case, the session will activate itself when * ready, and in the reuse server case, we're already on the correct VT. */ - if (g_strcmp0 (worker->display_seat_id, "seat0") == 0) { + if (g_strcmp0 (worker->display_seat_id, "seat0") == 0 && worker->seat0_has_vts) { if (worker->display_mode == GDM_SESSION_DISPLAY_MODE_NEW_VT) { jump_to_vt (worker, worker->session_vt); } @@ -2014,8 +1990,8 @@ } if (session_pid == 0) { + g_autofree char *home_dir = NULL; const char * const * environment; - char *home_dir; int stdin_fd = -1, stdout_fd = -1, stderr_fd = -1; gboolean has_journald = FALSE, needs_controlling_terminal = FALSE; /* Leak the TTY into the session as stdin so that it stays open @@ -2093,8 +2069,8 @@ #endif if (!has_journald && !worker->is_program_session) { if (home_dir != NULL && home_dir[0] != '\0') { - char *cache_dir; - char *log_dir; + g_autofree char *cache_dir = NULL; + g_autofree char *log_dir = NULL; cache_dir = gdm_session_worker_get_environment_variable (worker, "XDG_CACHE_HOME"); if (cache_dir == NULL || cache_dir[0] == '\0') { @@ -2102,7 +2078,6 @@ } log_dir = g_build_filename (cache_dir, "gdm", NULL); - g_free (cache_dir); if (g_mkdir_with_parents (log_dir, S_IRWXU) == 0) { stdout_fd = _open_user_session_log (log_dir); @@ -2111,13 +2086,11 @@ stdout_fd = open ("/dev/null", O_RDWR); stderr_fd = dup (stdout_fd); } - g_free (log_dir); } else { stdout_fd = open ("/dev/null", O_RDWR); stderr_fd = dup (stdout_fd); } } - g_free (home_dir); if (stdout_fd != -1) { dup2 (stdout_fd, STDOUT_FILENO); @@ -2290,31 +2263,31 @@ #ifdef PAM_XAUTHDATA struct pam_xauth_data *pam_xauth; #endif - int error_code = PAM_SUCCESS; - char *pam_tty; + g_autofree char *pam_tty = NULL; /* set TTY */ pam_tty = _get_tty_for_pam (worker->x11_display_name, worker->display_device); if (pam_tty != NULL && pam_tty[0] != '\0') { - error_code = pam_set_item (worker->pam_handle, PAM_TTY, pam_tty); + int error_code; + error_code = pam_set_item (worker->pam_handle, PAM_TTY, pam_tty); if (error_code != PAM_SUCCESS) { g_debug ("error informing authentication system of user's console %s: %s", pam_tty, pam_strerror (worker->pam_handle, error_code)); - g_free (pam_tty); g_set_error_literal (error, GDM_SESSION_WORKER_ERROR, GDM_SESSION_WORKER_ERROR_AUTHENTICATING, ""); - goto out; + return FALSE; } } - g_free (pam_tty); #ifdef PAM_XDISPLAY /* set XDISPLAY */ if (worker->x11_display_name != NULL && worker->x11_display_name[0] != '\0') { + int error_code; + error_code = pam_set_item (worker->pam_handle, PAM_XDISPLAY, worker->x11_display_name); if (error_code != PAM_SUCCESS) { g_debug ("error informing authentication system of display string %s: %s", @@ -2324,7 +2297,7 @@ GDM_SESSION_WORKER_ERROR, GDM_SESSION_WORKER_ERROR_AUTHENTICATING, ""); - goto out; + return FALSE; } } #endif @@ -2332,6 +2305,8 @@ /* set XAUTHDATA */ pam_xauth = _get_xauth_for_pam (worker->x11_authority_file); if (pam_xauth != NULL) { + int error_code; + error_code = pam_set_item (worker->pam_handle, PAM_XAUTHDATA, pam_xauth); if (error_code != PAM_SUCCESS) { g_debug ("error informing authentication system of display string %s: %s", @@ -2343,51 +2318,51 @@ GDM_SESSION_WORKER_ERROR, GDM_SESSION_WORKER_ERROR_AUTHENTICATING, ""); - goto out; + return FALSE; } g_free (pam_xauth); } #endif - if (g_strcmp0 (worker->display_seat_id, "seat0") == 0) { + if (g_strcmp0 (worker->display_seat_id, "seat0") == 0 && worker->seat0_has_vts) { g_debug ("GdmSessionWorker: setting XDG_VTNR to current vt"); set_xdg_vtnr_to_current_vt (worker); } else { - g_debug ("GdmSessionWorker: not setting XDG_VTNR since not seat0"); + g_debug ("GdmSessionWorker: not setting XDG_VTNR since no VTs on seat"); } return TRUE; -out: - return FALSE; } static gboolean gdm_session_worker_open_session (GdmSessionWorker *worker, GError **error) { + g_autofree char *session_id = NULL; int error_code; int flags; - char *session_id = NULL; g_assert (worker->state == GDM_SESSION_WORKER_STATE_ACCOUNT_DETAILS_SAVED); g_assert (geteuid () == 0); - switch (worker->display_mode) { - case GDM_SESSION_DISPLAY_MODE_REUSE_VT: - if (!set_up_for_current_vt (worker, error)) { - return FALSE; - } - break; - case GDM_SESSION_DISPLAY_MODE_NEW_VT: - case GDM_SESSION_DISPLAY_MODE_LOGIND_MANAGED: - if (!set_up_for_new_vt (worker)) { - g_set_error (error, - GDM_SESSION_WORKER_ERROR, - GDM_SESSION_WORKER_ERROR_OPENING_SESSION, - "Unable to open VT"); - return FALSE; + if (g_strcmp0 (worker->display_seat_id, "seat0") == 0 && worker->seat0_has_vts) { + switch (worker->display_mode) { + case GDM_SESSION_DISPLAY_MODE_REUSE_VT: + if (!set_up_for_current_vt (worker, error)) { + return FALSE; + } + break; + case GDM_SESSION_DISPLAY_MODE_NEW_VT: + case GDM_SESSION_DISPLAY_MODE_LOGIND_MANAGED: + if (!set_up_for_new_vt (worker)) { + g_set_error (error, + GDM_SESSION_WORKER_ERROR, + GDM_SESSION_WORKER_ERROR_OPENING_SESSION, + "Unable to open VT"); + return FALSE; + } + break; } - break; } flags = 0; @@ -2413,7 +2388,7 @@ if (session_id != NULL) { g_free (worker->session_id); - worker->session_id = session_id; + worker->session_id = g_steal_pointer (&session_id); } out: @@ -2548,50 +2523,46 @@ static void on_saved_language_name_read (GdmSessionWorker *worker) { - char *language_name; + g_autofree char *language_name = NULL; language_name = gdm_session_settings_get_language_name (worker->user_settings); g_debug ("GdmSessionWorker: Saved language is %s", language_name); gdm_dbus_worker_emit_saved_language_name_read (GDM_DBUS_WORKER (worker), language_name); - g_free (language_name); } static void on_saved_session_name_read (GdmSessionWorker *worker) { - char *session_name; + g_autofree char *session_name = NULL; session_name = gdm_session_settings_get_session_name (worker->user_settings); g_debug ("GdmSessionWorker: Saved session is %s", session_name); gdm_dbus_worker_emit_saved_session_name_read (GDM_DBUS_WORKER (worker), session_name); - g_free (session_name); } static void on_saved_session_type_read (GdmSessionWorker *worker) { - char *session_type; + g_autofree char *session_type = NULL; session_type = gdm_session_settings_get_session_type (worker->user_settings); g_debug ("GdmSessionWorker: Saved session type is %s", session_type); gdm_dbus_worker_emit_saved_session_type_read (GDM_DBUS_WORKER (worker), session_type); - g_free (session_type); } static void do_setup (GdmSessionWorker *worker) { - GError *error; + g_autoptr(GError) error = NULL; gboolean res; - error = NULL; res = gdm_session_worker_initialize_pam (worker, worker->service, (const char **) worker->extensions, @@ -2607,7 +2578,8 @@ if (res) { g_dbus_method_invocation_return_value (worker->pending_invocation, NULL); } else { - g_dbus_method_invocation_take_error (worker->pending_invocation, error); + g_dbus_method_invocation_take_error (worker->pending_invocation, + g_steal_pointer (&error)); } worker->pending_invocation = NULL; } @@ -2615,12 +2587,11 @@ static void do_authenticate (GdmSessionWorker *worker) { - GError *error; + g_autoptr(GError) error = NULL; gboolean res; /* find out who the user is and ensure they are who they say they are */ - error = NULL; res = gdm_session_worker_authenticate_user (worker, worker->password_is_required, &error); @@ -2636,7 +2607,8 @@ gdm_dbus_worker_complete_authenticate (GDM_DBUS_WORKER (worker), worker->pending_invocation); } else { g_debug ("GdmSessionWorker: Unable to verify user"); - g_dbus_method_invocation_take_error (worker->pending_invocation, error); + g_dbus_method_invocation_take_error (worker->pending_invocation, + g_steal_pointer (&error)); } worker->pending_invocation = NULL; } @@ -2644,19 +2616,19 @@ static void do_authorize (GdmSessionWorker *worker) { - GError *error; + g_autoptr(GError) error = NULL; gboolean res; /* make sure the user is allowed to log in to this system */ - error = NULL; res = gdm_session_worker_authorize_user (worker, worker->password_is_required, &error); if (res) { gdm_dbus_worker_complete_authorize (GDM_DBUS_WORKER (worker), worker->pending_invocation); } else { - g_dbus_method_invocation_take_error (worker->pending_invocation, error); + g_dbus_method_invocation_take_error (worker->pending_invocation, + g_steal_pointer (&error)); } worker->pending_invocation = NULL; } @@ -2664,18 +2636,18 @@ static void do_accredit (GdmSessionWorker *worker) { - GError *error; + g_autoptr(GError) error = NULL; gboolean res; /* get kerberos tickets, setup group lists, etc */ - error = NULL; res = gdm_session_worker_accredit_user (worker, &error); if (res) { gdm_dbus_worker_complete_establish_credentials (GDM_DBUS_WORKER (worker), worker->pending_invocation); } else { - g_dbus_method_invocation_take_error (worker->pending_invocation, error); + g_dbus_method_invocation_take_error (worker->pending_invocation, + g_steal_pointer (&error)); } worker->pending_invocation = NULL; } @@ -2756,10 +2728,9 @@ static void do_open_session (GdmSessionWorker *worker) { - GError *error; + g_autoptr(GError) error = NULL; gboolean res; - error = NULL; res = gdm_session_worker_open_session (worker, &error); if (res) { @@ -2770,7 +2741,8 @@ gdm_dbus_worker_complete_open (GDM_DBUS_WORKER (worker), worker->pending_invocation, session_id); } else { - g_dbus_method_invocation_take_error (worker->pending_invocation, error); + g_dbus_method_invocation_take_error (worker->pending_invocation, + g_steal_pointer (&error)); } worker->pending_invocation = NULL; } @@ -2778,17 +2750,17 @@ static void do_start_session (GdmSessionWorker *worker) { - GError *error; + g_autoptr(GError) error = NULL; gboolean res; - error = NULL; res = gdm_session_worker_start_session (worker, &error); if (res) { gdm_dbus_worker_complete_start_program (GDM_DBUS_WORKER (worker), worker->pending_invocation, worker->child_pid); } else { - g_dbus_method_invocation_take_error (worker->pending_invocation, error); + g_dbus_method_invocation_take_error (worker->pending_invocation, + g_steal_pointer (&error)); } worker->pending_invocation = NULL; } @@ -2967,11 +2939,11 @@ static char ** filter_extensions (const char * const *extensions) { + g_autoptr(GPtrArray) array = NULL; + g_auto(GStrv) filtered_extensions = NULL; size_t i, j; - GPtrArray *array = NULL; - char **filtered_extensions = NULL; - array = g_ptr_array_new (); + array = g_ptr_array_new_with_free_func (g_free); for (i = 0; extensions[i] != NULL; i++) { for (j = 0; gdm_supported_pam_extensions[j] != NULL; j++) { @@ -2985,9 +2957,7 @@ filtered_extensions = g_strdupv ((char **) array->pdata); - g_ptr_array_free (array, TRUE); - - return filtered_extensions; + return g_steal_pointer (&filtered_extensions); } static gboolean @@ -3033,6 +3003,8 @@ } } + worker->seat0_has_vts = sd_seat_can_tty ("seat0"); + worker->pending_invocation = invocation; if (!worker->is_program_session) { @@ -3214,7 +3186,7 @@ const char *text) { GdmSessionWorker *worker = GDM_SESSION_WORKER (object); - GError *parse_error = NULL; + g_autoptr(GError) parse_error = NULL; validate_state_change (worker, invocation, GDM_SESSION_WORKER_STATE_SESSION_STARTED); if (worker->is_reauth_session) { @@ -3229,7 +3201,8 @@ g_clear_pointer (&worker->arguments, g_strfreev); if (! g_shell_parse_argv (text, NULL, &worker->arguments, &parse_error)) { - g_dbus_method_invocation_take_error (invocation, parse_error); + g_dbus_method_invocation_take_error (invocation, + g_steal_pointer (&parse_error)); return TRUE; } @@ -3401,7 +3374,7 @@ GObjectConstructParam *construct_properties) { GdmSessionWorker *worker; - GError *error; + g_autoptr(GError) error = NULL; worker = GDM_SESSION_WORKER (G_OBJECT_CLASS (gdm_session_worker_parent_class)->constructor (type, n_construct_properties, @@ -3409,7 +3382,6 @@ g_debug ("GdmSessionWorker: connecting to address: %s", worker->server_address); - error = NULL; worker->connection = g_dbus_connection_new_for_address_sync (worker->server_address, G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT, NULL, @@ -3417,8 +3389,6 @@ &error); if (worker->connection == NULL) { g_warning ("error opening connection: %s", error->message); - g_clear_error (&error); - exit (EXIT_FAILURE); } @@ -3430,8 +3400,6 @@ &error)); if (worker->manager == NULL) { g_warning ("error creating session proxy: %s", error->message); - g_clear_error (&error); - exit (EXIT_FAILURE); } diff -Nru gdm3-44.1/daemon/gdm-session-worker-job.c gdm3-45~beta/daemon/gdm-session-worker-job.c --- gdm3-44.1/daemon/gdm-session-worker-job.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/daemon/gdm-session-worker-job.c 2023-08-29 16:11:10.000000000 +0000 @@ -172,7 +172,7 @@ copy_environment_to_hash (GdmSessionWorkerJob *job, GHashTable *hash) { - char **environment; + g_auto(GStrv) environment = NULL; gint i; if (job->environment != NULL) { @@ -182,58 +182,50 @@ } for (i = 0; environment[i]; i++) { - char **parts; + g_auto(GStrv) parts = NULL; parts = g_strsplit (environment[i], "=", 2); if (parts[0] != NULL && parts[1] != NULL) { g_hash_table_insert (hash, g_strdup (parts[0]), g_strdup (parts[1])); } - - g_strfreev (parts); } - - g_strfreev (environment); } static GPtrArray * get_job_arguments (GdmSessionWorkerJob *job, const char *name) { - GPtrArray *args; - GError *error; - char **argv; + g_autoptr(GPtrArray) args = NULL; + g_autoptr(GError) error = NULL; + g_auto(GStrv) argv = NULL; int i; args = NULL; - argv = NULL; - error = NULL; if (!g_shell_parse_argv (job->command, NULL, &argv, &error)) { g_warning ("Could not parse command: %s", error->message); - g_error_free (error); - goto out; + return NULL; } - args = g_ptr_array_new (); + args = g_ptr_array_new_with_free_func (g_free); g_ptr_array_add (args, g_strdup (argv[0])); g_ptr_array_add (args, g_strdup (name)); for (i = 1; argv[i] != NULL; i++) { g_ptr_array_add (args, g_strdup (argv[i])); } - g_strfreev (argv); g_ptr_array_add (args, NULL); -out: - return args; + + return g_steal_pointer (&args); } static GPtrArray * get_job_environment (GdmSessionWorkerJob *job) { - GPtrArray *env; - GHashTable *hash; + g_autoptr(GPtrArray) env = NULL; + g_autoptr(GHashTable) hash = NULL; - env = g_ptr_array_new (); + env = g_ptr_array_new_with_free_func (g_free); /* create a hash table of current environment, then update keys has necessary */ hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); @@ -246,21 +238,20 @@ } g_hash_table_foreach (hash, (GHFunc)listify_hash, env); - g_hash_table_destroy (hash); g_ptr_array_add (env, NULL); - return env; + return g_steal_pointer (&env); } static gboolean gdm_session_worker_job_spawn (GdmSessionWorkerJob *session_worker_job, const char *name) { - GError *error; + g_autoptr(GError) error = NULL; + g_autoptr(GPtrArray) args = NULL; + g_autoptr(GPtrArray) env = NULL; gboolean ret; - GPtrArray *args; - GPtrArray *env; g_debug ("GdmSessionWorkerJob: Running session_worker_job process: %s %s", name != NULL? name : "", session_worker_job->command); @@ -272,7 +263,6 @@ } env = get_job_environment (session_worker_job); - error = NULL; ret = g_spawn_async_with_pipes (NULL, (char **) args->pdata, (char **)env->pdata, @@ -285,17 +275,10 @@ NULL, &error); - g_ptr_array_foreach (args, (GFunc)g_free, NULL); - g_ptr_array_free (args, TRUE); - - g_ptr_array_foreach (env, (GFunc)g_free, NULL); - g_ptr_array_free (env, TRUE); - if (! ret) { g_warning ("Could not start command '%s': %s", session_worker_job->command, error->message); - g_error_free (error); } else { g_debug ("GdmSessionWorkerJob: : SessionWorkerJob on pid %d", (int)session_worker_job->pid); } diff -Nru gdm3-44.1/daemon/main.c gdm3-45~beta/daemon/main.c --- gdm3-44.1/daemon/main.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/daemon/main.c 2023-08-29 16:11:10.000000000 +0000 @@ -179,14 +179,14 @@ /* Set up /var/run/gdm */ if (!ensure_dir_with_perms (GDM_RAN_ONCE_MARKER_DIR, 0, gid, 0711, &error)) { - gdm_fail (_("Failed to create ran once marker dir %s: %s"), - GDM_RAN_ONCE_MARKER_DIR, error->message); + g_critical (_("Failed to create ran once marker dir %s: %s"), + GDM_RAN_ONCE_MARKER_DIR, error->message); } /* Set up /var/log/gdm */ if (!ensure_dir_with_perms (LOGDIR, 0, gid, 0711, &error)) { - gdm_fail (_("Failed to create LogDir %s: %s"), - LOGDIR, error->message); + g_critical (_("Failed to create LogDir %s: %s"), + LOGDIR, error->message); } } @@ -220,25 +220,25 @@ /* Set uid and gid */ if G_UNLIKELY (pwent == NULL) { - gdm_fail (_("Can’t find the GDM user “%s”. Aborting!"), username); + g_critical (_("Can’t find the GDM user “%s”. Aborting!"), username); } else { uid = pwent->pw_uid; } if G_UNLIKELY (uid == 0) { - gdm_fail (_("The GDM user should not be root. Aborting!")); + g_critical (_("The GDM user should not be root. Aborting!")); } grent = getgrnam (groupname); if G_UNLIKELY (grent == NULL) { - gdm_fail (_("Can’t find the GDM group “%s”. Aborting!"), groupname); + g_critical (_("Can’t find the GDM group “%s”. Aborting!"), groupname); } else { gid = grent->gr_gid; } if G_UNLIKELY (gid == 0) { - gdm_fail (_("The GDM group should not be root. Aborting!")); + g_critical (_("The GDM group should not be root. Aborting!")); } if (uidp != NULL) { diff -Nru gdm3-44.1/data/meson.build gdm3-45~beta/data/meson.build --- gdm3-44.1/data/meson.build 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/data/meson.build 2023-08-29 16:11:10.000000000 +0000 @@ -164,41 +164,53 @@ service_config.set('PLYMOUTH_QUIT_SERVICE', '') endif -if get_option('systemdsystemunitdir') != '' - systemd_systemunitdir = get_option('systemdsystemunitdir') -else - systemd_systemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir') +systemdsystemunitdir = get_option('systemdsystemunitdir') +if systemdsystemunitdir != 'no' + assert(systemd_dep.found(), 'systemd required but not found, please provide a valid systemd system unit dir or disable it') + if get_option('systemdsystemunitdir') != '' + systemd_systemunitdir = get_option('systemdsystemunitdir') + else + systemd_systemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir') + endif endif -if get_option('systemduserunitdir') != '' - systemd_userunitdir = get_option('systemduserunitdir') -else - systemd_userunitdir = systemd_dep.get_pkgconfig_variable('systemduserunitdir', - define_variable: ['prefix', get_option('prefix')]) +systemduserunitdir = get_option('systemduserunitdir') +if systemduserunitdir != 'no' + assert(systemd_dep.found(), 'systemd required but not found, please provide a valid systemd user unit dir or disable it') + if get_option('systemduserunitdir') != '' + systemd_userunitdir = get_option('systemduserunitdir') + else + systemd_userunitdir = systemd_dep.get_pkgconfig_variable('systemduserunitdir', + define_variable: ['prefix', get_option('prefix')]) + endif endif -configure_file( - input: 'gdm.service.in', - output: '@BASENAME@', - configuration: service_config, - install_dir: systemd_systemunitdir, - format: 'cmake' -) +if systemdsystemunitdir != 'no' + configure_file( + input: 'gdm.service.in', + output: '@BASENAME@', + configuration: service_config, + install_dir: systemd_systemunitdir, + format: 'cmake' + ) +endif gdm_gnome_session_wanted_targets = [] foreach component: gdm_gnome_user_session_wanted_components gdm_gnome_session_wanted_targets += 'Wants=@0@.target'.format(component) endforeach -configure_file( - input: 'session.conf.in', - output: 'session.conf', - configuration: { - 'requires_component': gdm_gnome_shell_component, - 'wants_required_components': '\n'.join(gdm_gnome_session_wanted_targets), - }, - install_dir: systemd_userunitdir / 'gnome-session@gnome-login.target.d', -) +if systemduserunitdir != 'no' + configure_file( + input: 'session.conf.in', + output: 'session.conf', + configuration: { + 'requires_component': gdm_gnome_shell_component, + 'wants_required_components': '\n'.join(gdm_gnome_session_wanted_targets), + }, + install_dir: systemd_userunitdir / 'gnome-session@gnome-login.target.d', + ) +endif # XSession if get_option('gdm-xsession') diff -Nru gdm3-44.1/data/pam-arch/gdm-launch-environment.pam gdm3-45~beta/data/pam-arch/gdm-launch-environment.pam --- gdm3-44.1/data/pam-arch/gdm-launch-environment.pam 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/data/pam-arch/gdm-launch-environment.pam 2023-08-29 16:11:10.000000000 +0000 @@ -14,4 +14,5 @@ session required pam_succeed_if.so audit quiet_success user in gdm:gnome-initial-setup session optional pam_permit.so -session optional pam_systemd.so +-session optional pam_elogind.so session required pam_env.so diff -Nru gdm3-44.1/debian/changelog gdm3-45~beta/debian/changelog --- gdm3-44.1/debian/changelog 2023-06-01 10:37:25.000000000 +0000 +++ gdm3-45~beta/debian/changelog 2023-09-07 13:57:44.000000000 +0000 @@ -1,3 +1,80 @@ +gdm3 (45~beta-1ubuntu1) mantic; urgency=medium + + * Merge with Debian. Remaining changes: + + readme.debian: update for correct paths in ubuntu + + control.in: + - don't recommend desktop-base + - depend on bash for config_error_dialog.patch + - update vcs field + + rules: + - don't override default user/group + - -dgdm-xsession=true to install upstream xsession script + - override dh_installinit with --no-start to avoid session being killed + + rules, readme.debian, gdm3.8.pod: + use upstream custom.conf instead of daemon.conf + + gdm3.{postinst,postrm}: rename user and group back to gdm + + debian/tests/control: + - Use gdm user name + - Use needs-root instead of needs-sudo (to remove when ubuntu autopkgtest + will be updated to include such feature) + + debian/tests/sssd-gdm-smartcard-pam-auth-tester-env.sh: + - Added to use needs-root autopkgtest instead of needs-sudo + + gdm3.*.pam: make pam_env read ~/.pam_environment, as we use in g-c-c + settings + + gdm3.install: + - don't install debian/xsession + + add run_xsession.d.patch + + add xresources_is_a_dir.patch + - fix loading from /etc/x11/xresources/* + + add nvidia_prime.patch: + - add hook to run prime-offload (as root) and prime-switch if + nvidia-prime is installed + + add revert_override_lang_with_accountservices.patch: + - on ubuntu accountservices only stores the language and not the + full locale as needed by lang. + + add dont_set_language_env.patch: + - don't run the set_up_session_language() function, since it + overrides variable values set by ~/.pam_environment + + add config_error_dialog.patch: + - show warning dialog in case of error in ~/.profile etc. and + don't let a syntax error make the login fail + + add debian/patches/revert_nvidia_wayland_blacklist.patch: + - don't blacklist nvidia for wayland + + add gdm3.service-wait-for-drm-device-before-trying-to-start-i.patch: + - wait for the first valid gdm device on pre-start + + add prefer_ubuntu_session_fallback.patch: + - Prefer ubuntu session as fallback instead of GNOME + + add XSession-Use-x-terminal-emulator-as-fallback-instead-of-x.patch: + - Use x-terminal-emulator as fallback instead of xterm + + add Revert-data-Disable-GDM-on-hybrid-graphics-laptops-with-v.patch: + - Don't disable Wayland on hybrid graphics laptops + + add debian/default.pa + - disable bluetooth audio devices in pulseaudio from gdm3. + + debian/gdm3.install + - added details of the default.pa file + + debian/gdm3.postinst + - added installation of default.pa and creation of dir if it doesn't + exist. + + debian/greeter.dconf-defaults: don't set debian settings in the + greeter's dconf db + * Drop clear signal handlers patch: applied in new release + * Refresh patches + + -- Jeremy Bícha Thu, 07 Sep 2023 09:57:44 -0400 + +gdm3 (45~beta-1) unstable; urgency=medium + + * New upstream release + + -- Jeremy Bícha Thu, 07 Sep 2023 09:28:08 -0400 + +gdm3 (44.1-2) unstable; urgency=medium + + * Clean up some old package relationships + * Release to unstable + + -- Jeremy Bícha Sun, 23 Jul 2023 16:10:57 -0400 + gdm3 (44.1-1ubuntu2) mantic; urgency=medium * debian/patches/ubuntu/gitlab_clearing_signal.patch: diff -Nru gdm3-44.1/debian/control gdm3-45~beta/debian/control --- gdm3-44.1/debian/control 2023-06-01 10:37:25.000000000 +0000 +++ gdm3-45~beta/debian/control 2023-09-07 13:57:44.000000000 +0000 @@ -7,7 +7,7 @@ Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debian GNOME Maintainers -Uploaders: Jeremy Bicha , Marco Trevisan (Treviño) +Uploaders: Jeremy Bícha , Marco Trevisan (Treviño) Build-Depends: check (>= 0.9.4), dconf-cli (>= 0.19.90), debhelper-compat (= 13), @@ -53,7 +53,6 @@ Package: gdm3 Architecture: amd64 arm64 armel armhf i386 mips64el mipsel ppc64el s390x riscv64 -Pre-Depends: ${misc:Pre-Depends} Depends: accountsservice (>= 0.6.35), adduser, bash (>= 4.3), @@ -94,8 +93,6 @@ libpam-pkcs11, libpam-gnome-keyring Provides: x-display-manager -Breaks: pulseaudio (<< 11.1-2), - xserver-xorg-core (<< 2:1.17.2-2~) Description: GNOME Display Manager GDM provides the equivalent of a "login:" prompt for X displays: it asks for a login and starts graphical sessions. @@ -108,12 +105,9 @@ Package: libgdm1 Section: libs Architecture: linux-any -Pre-Depends: ${misc:Pre-Depends} Depends: ${gir:Depends}, ${misc:Depends}, ${shlibs:Depends} -Breaks: gdm3 (<< 3.18.0-3~) -Replaces: gdm3 (<< 3.18.0-3~) Description: GNOME Display Manager (shared library) GDM provides the equivalent of a "login:" prompt for X displays: it asks for a login and starts graphical sessions. @@ -128,7 +122,6 @@ Package: libgdm-dev Section: libdevel Architecture: linux-any -Pre-Depends: ${misc:Pre-Depends} Depends: gir1.2-gdm-1.0 (= ${binary:Version}), libgdm1 (= ${binary:Version}), libglib2.0-dev (>= 2.44.0), diff -Nru gdm3-44.1/debian/control.in gdm3-45~beta/debian/control.in --- gdm3-44.1/debian/control.in 2023-06-01 10:37:25.000000000 +0000 +++ gdm3-45~beta/debian/control.in 2023-09-07 13:57:44.000000000 +0000 @@ -49,7 +49,6 @@ Package: gdm3 Architecture: amd64 arm64 armel armhf i386 mips64el mipsel ppc64el s390x riscv64 -Pre-Depends: ${misc:Pre-Depends} Depends: accountsservice (>= 0.6.35), adduser, bash (>= 4.3), @@ -90,8 +89,6 @@ libpam-pkcs11, libpam-gnome-keyring Provides: x-display-manager -Breaks: pulseaudio (<< 11.1-2), - xserver-xorg-core (<< 2:1.17.2-2~) Description: GNOME Display Manager GDM provides the equivalent of a "login:" prompt for X displays: it asks for a login and starts graphical sessions. @@ -104,12 +101,9 @@ Package: libgdm1 Section: libs Architecture: linux-any -Pre-Depends: ${misc:Pre-Depends} Depends: ${gir:Depends}, ${misc:Depends}, ${shlibs:Depends} -Breaks: gdm3 (<< 3.18.0-3~) -Replaces: gdm3 (<< 3.18.0-3~) Description: GNOME Display Manager (shared library) GDM provides the equivalent of a "login:" prompt for X displays: it asks for a login and starts graphical sessions. @@ -124,7 +118,6 @@ Package: libgdm-dev Section: libdevel Architecture: linux-any -Pre-Depends: ${misc:Pre-Depends} Depends: gir1.2-gdm-1.0 (= ${binary:Version}), libgdm1 (= ${binary:Version}), libglib2.0-dev (>= 2.44.0), diff -Nru gdm3-44.1/debian/gbp.conf gdm3-45~beta/debian/gbp.conf --- gdm3-44.1/debian/gbp.conf 2023-06-01 10:37:25.000000000 +0000 +++ gdm3-45~beta/debian/gbp.conf 2023-09-07 13:57:44.000000000 +0000 @@ -1,6 +1,6 @@ [DEFAULT] pristine-tar = True -debian-branch=ubuntu/master +debian-branch=ubuntu/latest upstream-branch = upstream/latest upstream-vcs-tag = %(version%~%.)s debian-tag = ubuntu/%(version)s diff -Nru gdm3-44.1/debian/patches/series gdm3-45~beta/debian/patches/series --- gdm3-44.1/debian/patches/series 2023-06-01 10:37:25.000000000 +0000 +++ gdm3-45~beta/debian/patches/series 2023-09-07 13:57:44.000000000 +0000 @@ -13,4 +13,3 @@ ubuntu/XSession-Use-x-terminal-emulator-as-fallback-instead-of-x.patch ubuntu/Revert-data-Disable-GDM-on-hybrid-graphics-laptops-with-v.patch ubuntu/start-after-cloudinit.patch -ubuntu/gitlab_clearing_signal.patch diff -Nru gdm3-44.1/debian/patches/ubuntu/config_error_dialog.patch gdm3-45~beta/debian/patches/ubuntu/config_error_dialog.patch --- gdm3-44.1/debian/patches/ubuntu/config_error_dialog.patch 2023-06-01 10:37:25.000000000 +0000 +++ gdm3-45~beta/debian/patches/ubuntu/config_error_dialog.patch 2023-09-07 13:57:44.000000000 +0000 @@ -9,10 +9,10 @@ Forwarded: https://bugzilla.gnome.org/738970 --- data/Xsession.in | 29 +++++++++++++++++++++++------ - data/config-error-dialog.sh | 29 +++++++++++++++++++++++++++++ + data/config-error-dialog.sh | 33 +++++++++++++++++++++++++++++++++ data/meson.build | 7 ++++++- po/POTFILES.in | 1 + - 4 files changed, 59 insertions(+), 7 deletions(-) + 4 files changed, 63 insertions(+), 7 deletions(-) create mode 100644 data/config-error-dialog.sh diff --git a/data/Xsession.in b/data/Xsession.in @@ -66,7 +66,7 @@ if [ -x "@libexecdir@/gdmtranslate" ] ; then diff --git a/data/config-error-dialog.sh b/data/config-error-dialog.sh new file mode 100644 -index 0000000..08cb7b9 +index 0000000..fb12366 --- /dev/null +++ b/data/config-error-dialog.sh @@ -0,0 +1,33 @@ @@ -104,10 +104,10 @@ + zenity --warning --no-wrap --no-markup --text="$TEXT" +fi diff --git a/data/meson.build b/data/meson.build -index 6bac895..db711a8 100644 +index 86ac1af..3767052 100644 --- a/data/meson.build +++ b/data/meson.build -@@ -207,8 +207,13 @@ if get_option('gdm-xsession') +@@ -219,8 +219,13 @@ if get_option('gdm-xsession') output: '@BASENAME@', configuration: { 'libexecdir': gdm_prefix / get_option('libexecdir'), diff -Nru gdm3-44.1/debian/patches/ubuntu/dont_set_language_env.patch gdm3-45~beta/debian/patches/ubuntu/dont_set_language_env.patch --- gdm3-44.1/debian/patches/ubuntu/dont_set_language_env.patch 2023-06-01 10:37:25.000000000 +0000 +++ gdm3-45~beta/debian/patches/ubuntu/dont_set_language_env.patch 2023-09-07 13:57:44.000000000 +0000 @@ -13,10 +13,10 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c -index b8f2917..39fad4a 100644 +index 46bf763..643e374 100644 --- a/daemon/gdm-session.c +++ b/daemon/gdm-session.c -@@ -2700,7 +2700,7 @@ set_up_session_environment (GdmSession *self) +@@ -2712,7 +2712,7 @@ set_up_session_environment (GdmSession *self) gdm_session_set_environment_variable (self, "XDG_CURRENT_DESKTOP", desktop_names); } diff -Nru gdm3-44.1/debian/patches/ubuntu/gitlab_clearing_signal.patch gdm3-45~beta/debian/patches/ubuntu/gitlab_clearing_signal.patch --- gdm3-44.1/debian/patches/ubuntu/gitlab_clearing_signal.patch 2023-06-01 10:37:25.000000000 +0000 +++ gdm3-45~beta/debian/patches/ubuntu/gitlab_clearing_signal.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -# -# Upstream: https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/210 -# -From 663c57a4080dcddfbd1909f9c7fa857452d14d32 Mon Sep 17 00:00:00 2001 -From: Ghadi Rahme -Date: Wed, 24 May 2023 10:10:14 +0000 -Subject: [PATCH] Clearing signal handler after udev settle to avoid sudden - logout - ---- - daemon/gdm-local-display-factory.c | 3 +++ - 1 file changed, 3 insertions(+) - -Index: gdm/daemon/gdm-local-display-factory.c -=================================================================== ---- gdm.orig/daemon/gdm-local-display-factory.c 2023-06-01 12:34:35.832176903 +0200 -+++ gdm/daemon/gdm-local-display-factory.c 2023-06-01 12:34:35.832176903 +0200 -@@ -645,16 +645,19 @@ - - if (factory->seat0_has_platform_graphics) { - g_debug ("GdmLocalDisplayFactory: udev settled, platform graphics enabled."); -+ g_clear_signal_handler (&factory->uevent_handler_id, factory->gudev_client); - return TRUE; - } - - if (factory->seat0_has_boot_up_graphics) { - g_debug ("GdmLocalDisplayFactory: udev settled, boot up graphics available."); -+ g_clear_signal_handler (&factory->uevent_handler_id, factory->gudev_client); - return TRUE; - } - - if (factory->seat0_graphics_check_timed_out) { - g_debug ("GdmLocalDisplayFactory: udev timed out, proceeding anyway."); -+ g_clear_signal_handler (&factory->uevent_handler_id, factory->gudev_client); - return TRUE; - } - diff -Nru gdm3-44.1/debian/patches/ubuntu/nvidia_prime.patch gdm3-45~beta/debian/patches/ubuntu/nvidia_prime.patch --- gdm3-44.1/debian/patches/ubuntu/nvidia_prime.patch 2023-06-01 10:37:25.000000000 +0000 +++ gdm3-45~beta/debian/patches/ubuntu/nvidia_prime.patch 2023-09-07 13:57:44.000000000 +0000 @@ -16,10 +16,10 @@ create mode 100644 data/PrimeOff.in diff --git a/common/gdm-common.c b/common/gdm-common.c -index 9202902..47d53e1 100644 +index 2a0bbd0..dc3b783 100644 --- a/common/gdm-common.c +++ b/common/gdm-common.c -@@ -702,7 +702,7 @@ gdm_run_script (const char *dir, +@@ -712,7 +712,7 @@ gdm_run_script (const char *dir, goto out; } @@ -29,10 +29,10 @@ display_hostname, display_x11_authority_file); diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c -index 4b70973..15453d1 100644 +index ebb9213..0484749 100644 --- a/daemon/gdm-session.c +++ b/daemon/gdm-session.c -@@ -3043,6 +3043,12 @@ gdm_session_close (GdmSession *self) +@@ -3057,6 +3057,12 @@ gdm_session_close (GdmSession *self) g_list_free_full (self->outside_connections, g_object_unref); self->outside_connections = NULL; @@ -86,7 +86,7 @@ + $primeswitch +fi diff --git a/data/meson.build b/data/meson.build -index 2dec4c2..6bac895 100644 +index c3452e1..86ac1af 100644 --- a/data/meson.build +++ b/data/meson.build @@ -3,7 +3,7 @@ subdir('autostart') diff -Nru gdm3-44.1/debian/patches/ubuntu/prefer_ubuntu_session_fallback.patch gdm3-45~beta/debian/patches/ubuntu/prefer_ubuntu_session_fallback.patch --- gdm3-44.1/debian/patches/ubuntu/prefer_ubuntu_session_fallback.patch 2023-06-01 10:37:25.000000000 +0000 +++ gdm3-45~beta/debian/patches/ubuntu/prefer_ubuntu_session_fallback.patch 2023-09-07 13:57:44.000000000 +0000 @@ -12,7 +12,7 @@ 1 file changed, 8 insertions(+) diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c -index 39fad4a..9645232 100644 +index 643e374..5debf62 100644 --- a/daemon/gdm-session.c +++ b/daemon/gdm-session.c @@ -589,6 +589,14 @@ get_fallback_session_name (GdmSession *self) diff -Nru gdm3-44.1/debian/patches/ubuntu/revert_override_LANG_with_accountservices.patch gdm3-45~beta/debian/patches/ubuntu/revert_override_LANG_with_accountservices.patch --- gdm3-44.1/debian/patches/ubuntu/revert_override_LANG_with_accountservices.patch 2023-06-01 10:37:25.000000000 +0000 +++ gdm3-45~beta/debian/patches/ubuntu/revert_override_LANG_with_accountservices.patch 2023-09-07 13:57:44.000000000 +0000 @@ -9,10 +9,10 @@ 1 file changed, 14 deletions(-) diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c -index 15453d1..b8f2917 100644 +index 0484749..46bf763 100644 --- a/daemon/gdm-session.c +++ b/daemon/gdm-session.c -@@ -2682,7 +2682,6 @@ set_up_session_environment (GdmSession *self) +@@ -2694,7 +2694,6 @@ set_up_session_environment (GdmSession *self) { GdmSessionDisplayMode display_mode; gchar *desktop_names; @@ -20,7 +20,7 @@ if (self->selected_program == NULL) { gdm_session_set_environment_variable (self, -@@ -2703,19 +2702,6 @@ set_up_session_environment (GdmSession *self) +@@ -2715,19 +2714,6 @@ set_up_session_environment (GdmSession *self) set_up_session_language (self); diff -Nru gdm3-44.1/debian/patches/ubuntu/start-after-cloudinit.patch gdm3-45~beta/debian/patches/ubuntu/start-after-cloudinit.patch --- gdm3-44.1/debian/patches/ubuntu/start-after-cloudinit.patch 2023-06-01 10:37:25.000000000 +0000 +++ gdm3-45~beta/debian/patches/ubuntu/start-after-cloudinit.patch 2023-09-07 13:57:44.000000000 +0000 @@ -1,7 +1,15 @@ -Index: gdm/data/gdm.service.in -=================================================================== ---- gdm.orig/data/gdm.service.in -+++ gdm/data/gdm.service.in +From: Sebastien Bacher +Date: Wed, 14 Dec 2022 08:51:03 +0100 +Subject: start after cloudinit + +--- + data/gdm.service.in | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/data/gdm.service.in b/data/gdm.service.in +index 066d763..041a5d7 100644 +--- a/data/gdm.service.in ++++ b/data/gdm.service.in @@ -15,6 +15,10 @@ After=${PLYMOUTH_QUIT_SERVICE} # plymouth is quit, which we do) After=rc-local.service plymouth-start.service systemd-user-sessions.service diff -Nru gdm3-44.1/debian/upstream/metadata gdm3-45~beta/debian/upstream/metadata --- gdm3-44.1/debian/upstream/metadata 2023-06-01 10:37:25.000000000 +0000 +++ gdm3-45~beta/debian/upstream/metadata 2023-09-07 13:57:44.000000000 +0000 @@ -1,4 +1,5 @@ -Bug-Database: https://gitlab.gnome.org/GNOME/gdm/issues/ -Bug-Submit: https://gitlab.gnome.org/GNOME/gdm/issues/new +Name: gdm +Bug-Database: https://gitlab.gnome.org/GNOME/gdm/-/issues +Bug-Submit: https://gitlab.gnome.org/GNOME/gdm/-/issues/new Repository: https://gitlab.gnome.org/gnome/gdm.git Repository-Browse: https://gitlab.gnome.org/GNOME/gdm/ diff -Nru gdm3-44.1/debian/watch gdm3-45~beta/debian/watch --- gdm3-44.1/debian/watch 2023-06-01 10:37:25.000000000 +0000 +++ gdm3-45~beta/debian/watch 2023-09-07 13:57:44.000000000 +0000 @@ -1,4 +1,4 @@ version=4 -opts="uversionmangle=s/\.(alpha|beta|rc)/~$1/" \ -https://download.gnome.org/sources/gdm/@ANY_VERSION@/ \ - gdm@ANY_VERSION@\.tar\.xz +opts="searchmode=plain, uversionmangle=s/\.(alpha|beta|rc)/~$1/, downloadurlmangle=s|cache.json||" \ +https://download.gnome.org/sources/gdm/cache.json \ + [\d.]+/gdm-([\d.]+\.?(?:beta|rc)?[\d.]*)@ARCHIVE_EXT@ diff -Nru gdm3-44.1/.gitlab-ci.yml gdm3-45~beta/.gitlab-ci.yml --- gdm3-44.1/.gitlab-ci.yml 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/.gitlab-ci.yml 2023-08-29 16:11:10.000000000 +0000 @@ -2,7 +2,7 @@ - build build-fedora: - image: fedora:33 + image: fedora:38 stage: build before_script: - dnf -y install diff -Nru gdm3-44.1/libgdm/gdm-sessions.c gdm3-45~beta/libgdm/gdm-sessions.c --- gdm3-44.1/libgdm/gdm-sessions.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/libgdm/gdm-sessions.c 2023-08-29 16:11:10.000000000 +0000 @@ -143,6 +143,7 @@ if (!key_file_is_relevant (key_file)) { g_debug ("\"%s\" is hidden or contains non-executable TryExec program\n", path); + g_hash_table_remove (gdm_available_sessions_map, id); goto out; } @@ -322,7 +323,7 @@ } if (!supported_session_types || g_strv_contains ((const char * const *) supported_session_types, "x11")) { - for (i = 0; i < xorg_search_array->len; i++) { + for (i = xorg_search_array->len - 1; i >= 0; i--) { collect_sessions_from_directory (g_ptr_array_index (xorg_search_array, i)); } } @@ -330,7 +331,7 @@ #ifdef ENABLE_WAYLAND_SUPPORT #ifdef ENABLE_USER_DISPLAY_SERVER if (!supported_session_types || g_strv_contains ((const char * const *) supported_session_types, "wayland")) { - for (i = 0; i < wayland_search_array->len; i++) { + for (i = wayland_search_array->len - 1; i >= 0; i--) { collect_sessions_from_directory (g_ptr_array_index (wayland_search_array, i)); } } diff -Nru gdm3-44.1/libgdm/gdm-user-switching.c gdm3-45~beta/libgdm/gdm-user-switching.c --- gdm3-44.1/libgdm/gdm-user-switching.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/libgdm/gdm-user-switching.c 2023-08-29 16:11:10.000000000 +0000 @@ -19,240 +19,12 @@ * */ -#include "config.h" - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - #include "common/gdm-common.h" #include "gdm-user-switching.h" -#include "gdm-client.h" - -static gboolean -create_transient_display (GDBusConnection *connection, - GCancellable *cancellable, - GError **error) -{ - GVariant *reply; - const char *value; - - reply = g_dbus_connection_call_sync (connection, - "org.gnome.DisplayManager", - "/org/gnome/DisplayManager/LocalDisplayFactory", - "org.gnome.DisplayManager.LocalDisplayFactory", - "CreateTransientDisplay", - NULL, /* parameters */ - G_VARIANT_TYPE ("(o)"), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, error); - if (reply == NULL) { - g_prefix_error (error, _("Unable to create transient display: ")); - return FALSE; - } - - g_variant_get (reply, "(&o)", &value); - g_debug ("Started %s", value); - - g_variant_unref (reply); - return TRUE; -} - -static gboolean -activate_session_id (GDBusConnection *connection, - GCancellable *cancellable, - const char *seat_id, - const char *session_id, - GError **error) -{ - GVariant *reply; - - reply = g_dbus_connection_call_sync (connection, - "org.freedesktop.login1", - "/org/freedesktop/login1", - "org.freedesktop.login1.Manager", - "ActivateSessionOnSeat", - g_variant_new ("(ss)", session_id, seat_id), - NULL, - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, error); - if (reply == NULL) { - g_prefix_error (error, _("Unable to activate session: ")); - return FALSE; - } - - g_variant_unref (reply); - - return TRUE; -} - -static gboolean -get_login_window_session_id (const char *seat_id, - char **session_id) -{ - gboolean ret; - int res, i; - char **sessions; - char *service_id; - char *service_class; - char *state; - - res = sd_seat_get_sessions (seat_id, &sessions, NULL, NULL); - if (res < 0) { - g_debug ("Failed to determine sessions: %s", strerror (-res)); - return FALSE; - } - - if (sessions == NULL || sessions[0] == NULL) { - *session_id = NULL; - ret = TRUE; - goto out; - } - - for (i = 0; sessions[i]; i ++) { - - res = sd_session_get_class (sessions[i], &service_class); - if (res < 0) { - g_debug ("failed to determine class of session %s: %s", sessions[i], strerror (-res)); - ret = FALSE; - goto out; - } - - if (strcmp (service_class, "greeter") != 0) { - free (service_class); - continue; - } - - free (service_class); - - ret = sd_session_get_state (sessions[i], &state); - if (ret < 0) { - g_debug ("failed to determine state of session %s: %s", sessions[i], strerror (-res)); - ret = FALSE; - goto out; - } - - if (g_strcmp0 (state, "closing") == 0) { - free (state); - continue; - } - free (state); - - res = sd_session_get_service (sessions[i], &service_id); - if (res < 0) { - g_debug ("failed to determine service of session %s: %s", sessions[i], strerror (-res)); - ret = FALSE; - goto out; - } - - if (strcmp (service_id, "gdm-launch-environment") == 0) { - *session_id = g_strdup (sessions[i]); - ret = TRUE; - - free (service_id); - goto out; - } - - free (service_id); - } - - *session_id = NULL; - ret = TRUE; - -out: - if (sessions) { - for (i = 0; sessions[i]; i ++) { - free (sessions[i]); - } - - free (sessions); - } - - return ret; -} - -static gboolean -goto_login_session (GDBusConnection *connection, - GCancellable *cancellable, - GError **error) -{ - gboolean ret; - int res; - char *our_session; - char *session_id; - char *seat_id; - GError *local_error = NULL; - - ret = FALSE; - session_id = NULL; - seat_id = NULL; - - /* First look for any existing LoginWindow sessions on the seat. - If none are found, create a new one. */ - - /* Note that we mostly use free () here, instead of g_free () - * since the data allocated is from libsystemd-logind, which - * does not use GLib's g_malloc (). */ - if (!gdm_find_display_session (0, getuid (), &our_session, &local_error)) { - g_propagate_prefixed_error (error, local_error, _("Could not identify the current session: ")); - - return FALSE; - } - - res = sd_session_get_seat (our_session, &seat_id); - free (our_session); - if (res < 0) { - g_debug ("failed to determine own seat: %s", strerror (-res)); - g_set_error (error, GDM_CLIENT_ERROR, 0, _("Could not identify the current seat.")); - - return FALSE; - } - - res = get_login_window_session_id (seat_id, &session_id); - if (res && session_id != NULL) { - res = activate_session_id (connection, cancellable, seat_id, session_id, error); - - if (res) { - ret = TRUE; - } - } - - if (! ret && g_strcmp0 (seat_id, "seat0") == 0) { - res = create_transient_display (connection, cancellable, error); - if (res) { - ret = TRUE; - } - } - - free (seat_id); - g_free (session_id); - - return ret; -} gboolean gdm_goto_login_session_sync (GCancellable *cancellable, GError **error) { - GDBusConnection *connection; - gboolean retval; - - connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, cancellable, error); - if (!connection) - return FALSE; - - retval = goto_login_session (connection, cancellable, error); - - g_object_unref (connection); - return retval; + return gdm_goto_login_session (cancellable, error); } diff -Nru gdm3-44.1/libgdm/meson.build gdm3-45~beta/libgdm/meson.build --- gdm3-44.1/libgdm/meson.build 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/libgdm/meson.build 2023-08-29 16:11:10.000000000 +0000 @@ -56,7 +56,7 @@ glib_dep, gio_dep, gio_unix_dep, - libsystemd_dep, + logind_dep, libgdmcommon_dep, ] diff -Nru gdm3-44.1/meson.build gdm3-45~beta/meson.build --- gdm3-44.1/meson.build 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/meson.build 2023-08-29 16:11:10.000000000 +0000 @@ -1,5 +1,5 @@ project('gdm', 'c', - version: '44.1', + version: '45.beta', license: 'GPL2+', meson_version: '>= 0.57', ) @@ -100,16 +100,24 @@ libwrap_dep = cc.find_library('wrap') endif # systemd -systemd_dep = dependency('systemd') -libsystemd_dep = dependency('libsystemd') -systemd_multiseat_x = find_program('systemd-multi-seat-x', - required: false, - dirs: [ - systemd_dep.get_pkgconfig_variable('systemdutildir'), - '/lib/systemd', - '/usr/lib/systemd', - ]) -systemd_x_server = systemd_multiseat_x.found()? systemd_multiseat_x.path() : '/lib/systemd/systemd-multi-seat-x' +logind_provider = get_option('logind-provider') +systemd_dep = dependency('systemd', required: false) +if logind_provider == 'systemd' + libsystemd_dep = dependency('libsystemd') + logind_dep = libsystemd_dep + systemd_multiseat_x = find_program('systemd-multi-seat-x', + required: false, + dirs: [ + systemd_dep.get_pkgconfig_variable('systemdutildir'), + '/lib/systemd', + '/usr/lib/systemd', + ]) + systemd_x_server = systemd_multiseat_x.found()? systemd_multiseat_x.path() : '/lib/systemd/systemd-multi-seat-x' +else + elogind_dep = dependency('libelogind') + logind_dep = elogind_dep + systemd_x_server = 'disabled' +endif # Plymouth plymouth_dep = dependency('ply-boot-client', required: get_option('plymouth')) # Check for Solaris auditing API (ADT) @@ -319,6 +327,7 @@ 'PAM Syslog': have_pam_syslog, 'Supports PAM Extensions': pam_extensions_supported, 'SeLinux': libselinux_dep.found(), + 'Logind Provider': get_option('logind-provider'), 'Use GDM Xsession': get_option('gdm-xsession'), 'Use UserDisplayServer': get_option('user-display-server'), 'Use SystemdJournal': get_option('systemd-journal'), diff -Nru gdm3-44.1/meson_options.txt gdm3-45~beta/meson_options.txt --- gdm3-44.1/meson_options.txt 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/meson_options.txt 2023-08-29 16:11:10.000000000 +0000 @@ -12,6 +12,7 @@ option('ipv6', type: 'boolean', value: false, description: 'Enables compilation of IPv6 code.') option('lang-file', type: 'string', value: '', description: 'File containing default language settings.') option('libaudit', type: 'feature', value: 'auto', description: 'Add Linux audit support.') +option('logind-provider', type: 'combo', choices: ['systemd', 'elogind'], value: 'systemd', description: 'Which logind library to use.') option('log-dir', type: 'string', value: '/var/log/gdm', description: 'Log directory.') option('pam-mod-dir', type: 'string', value: '', description: 'Directory to install PAM modules in.') option('pam-prefix', type: 'string', value: '', description: 'Specify where PAM files go.') @@ -27,8 +28,8 @@ option('split-authentication', type: 'boolean', value: true, description: 'Enable multiple simultaneous PAM conversations during login.') option('sysconfsubdir', type: 'string', value: 'gdm', description: 'Directory name used under sysconfdir.') option('systemd-journal', type: 'boolean', value: true, description: 'Use journald support.') -option('systemdsystemunitdir', type: 'string', value: '', description: 'Directory for systemd service files.') -option('systemduserunitdir', type: 'string', value: '', description: 'Directory for systemd user service files.') +option('systemdsystemunitdir', type: 'string', value: '', description: 'Directory for systemd service files, or \'no\' to disable.') +option('systemduserunitdir', type: 'string', value: '', description: 'Directory for systemd user service files, or \'no\' to disable.') option('tcp-wrappers', type: 'boolean', value: false, description: 'Use TCP wrappers.') option('udev-dir', type: 'string', value: '', description: 'Directory for udev rules file.') option('user', type: 'string', value: 'gdm', description: 'GDM\'s username.') diff -Nru gdm3-44.1/NEWS gdm3-45~beta/NEWS --- gdm3-44.1/NEWS 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/NEWS 2023-08-29 16:11:10.000000000 +0000 @@ -1,7 +1,13 @@ -============ -Version 44.1 -============ -- Fix blown assertion log spew +=============== +Version 45.beta +=============== +- A ton of small code clean ups and small leak fixes +- Set gnome-initial-setup dconf profile +- Honor settings configured with a template in AccountsService +- Crash fix from stray udev events +- VT handling fixes +- Work better in presence of simpledrm +- wayland multi-seat support - Translation updates ============ diff -Nru gdm3-44.1/po/cs.po gdm3-45~beta/po/cs.po --- gdm3-44.1/po/cs.po 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/po/cs.po 2023-08-29 16:11:10.000000000 +0000 @@ -18,8 +18,8 @@ msgstr "" "Project-Id-Version: gdm\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gdm/issues\n" -"POT-Creation-Date: 2020-12-21 15:54+0000\n" -"PO-Revision-Date: 2021-01-14 08:17+0100\n" +"POT-Creation-Date: 2023-01-25 17:25+0000\n" +"PO-Revision-Date: 2023-04-07 00:16+0200\n" "Last-Translator: Daniel Rusek \n" "Language-Team: čeština \n" "Language: cs\n" @@ -27,7 +27,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Poedit 2.2.3\n" +"X-Generator: Poedit 3.2.2\n" "X-Project-Style: gnome\n" #: chooser/gdm-host-chooser-dialog.c:139 @@ -66,30 +66,18 @@ msgid "/dev/urandom is not a character device" msgstr "/dev/urandom není znakovým zobrazovačem" -#: common/gdm-common.c:501 libgdm/gdm-user-switching.c:207 +#: common/gdm-common.c:507 libgdm/gdm-user-switching.c:207 msgid "Could not identify the current session: " msgstr "Nezdařilo se určit aktuální sezení: " -#: common/gdm-common.c:510 libgdm/gdm-user-switching.c:216 +#: common/gdm-common.c:516 libgdm/gdm-user-switching.c:216 msgid "Could not identify the current seat." msgstr "Nezdařilo se určit aktuální stanici." -#: common/gdm-common.c:520 libgdm/gdm-user-switching.c:226 -msgid "" -"The system is unable to determine whether to switch to an existing login " -"screen or start up a new login screen." -msgstr "" -"Systém není schopen určit, zda má přepnout na existující přihlašovací " -"obrazovku, nebo spustit novou přihlašovací obrazovku." - -#: common/gdm-common.c:528 libgdm/gdm-user-switching.c:234 -msgid "The system is unable to start up a new login screen." -msgstr "Systém není schopen spustit novou přihlašovací obrazovku." - -#: daemon/gdm-display-access-file.c:298 +#: daemon/gdm-display-access-file.c:285 daemon/gdm-display-access-file.c:306 #, c-format -msgid "could not find user “%s” on system" -msgstr "v systému nelze najít uživatele „%s“" +msgid "Could not find user “%s” on system" +msgstr "V systému nelze najít uživatele „%s“" #: daemon/gdm-legacy-display.c:236 msgid "" @@ -103,66 +91,66 @@ "systémovými záznamy. Mezitím bude tento displej zakázán. Až bude problém " "vyřešen, spusťte prosím GDM znovu." -#: daemon/gdm-manager.c:764 +#: daemon/gdm-manager.c:769 msgid "No display available" msgstr "Není dostupný žádný displej" -#: daemon/gdm-manager.c:862 daemon/gdm-manager.c:1146 +#: daemon/gdm-manager.c:867 daemon/gdm-manager.c:1151 msgid "No session available" msgstr "Není dostupné žádné sezení" -#: daemon/gdm-manager.c:881 +#: daemon/gdm-manager.c:886 msgid "Chooser session unavailable" msgstr "Vybrané sezení není dostupné" -#: daemon/gdm-manager.c:897 +#: daemon/gdm-manager.c:902 msgid "Can only be called before user is logged in" msgstr "Může být zavolán pouze před přihlášením uživatele" -#: daemon/gdm-manager.c:908 +#: daemon/gdm-manager.c:913 msgid "Caller not GDM" msgstr "Volající není GDM" -#: daemon/gdm-manager.c:918 +#: daemon/gdm-manager.c:923 msgid "Unable to open private communication channel" msgstr "Nelze otevřít soukromý komunikační kanál" -#: daemon/gdm-server.c:383 +#: daemon/gdm-server.c:384 #, c-format msgid "Server was to be spawned by user %s but that user doesn’t exist" msgstr "Server měl být spuštěný uživatelem %s, ale takový uživatel neexistuje" -#: daemon/gdm-server.c:394 daemon/gdm-server.c:414 +#: daemon/gdm-server.c:395 daemon/gdm-server.c:415 #, c-format msgid "Couldn’t set groupid to %d" msgstr "Nelze nastavit groupid na %d" -#: daemon/gdm-server.c:400 +#: daemon/gdm-server.c:401 #, c-format msgid "initgroups () failed for %s" msgstr "initgroups () selhalo u %s" -#: daemon/gdm-server.c:406 +#: daemon/gdm-server.c:407 #, c-format msgid "Couldn’t set userid to %d" msgstr "Nelze nastavit userid na %d" -#: daemon/gdm-server.c:484 +#: daemon/gdm-server.c:485 #, c-format msgid "%s: Could not open log file for display %s!" msgstr "%s: Nelze otevřít soubor záznamu k displeji %s!" -#: daemon/gdm-server.c:505 daemon/gdm-server.c:511 daemon/gdm-server.c:517 +#: daemon/gdm-server.c:506 daemon/gdm-server.c:512 daemon/gdm-server.c:518 #, c-format msgid "%s: Error setting %s to %s" msgstr "%s: Chyba při nastavování %s na %s" -#: daemon/gdm-server.c:537 +#: daemon/gdm-server.c:538 #, c-format msgid "%s: Server priority couldn’t be set to %d: %s" msgstr "%s: Priorita serveru nemůže být nastavena na %d: %s" -#: daemon/gdm-server.c:689 +#: daemon/gdm-server.c:690 #, c-format msgid "%s: Empty server command for display %s" msgstr "%s: Prázdný příkaz serveru k displeji %s" @@ -191,11 +179,11 @@ msgid "The display device" msgstr "Zařízení displeje" -#: daemon/gdm-session.c:1285 +#: daemon/gdm-session.c:1336 msgid "Could not create authentication helper process" msgstr "Nezdařilo se vytvořit obslužný proces ověření" -#: daemon/gdm-session-worker.c:750 +#: daemon/gdm-session-worker.c:752 msgid "" "You reached the maximum password authentication attempts, please try another " "method" @@ -203,15 +191,7 @@ "Narazili jste na maximální možný počet pokusů ověření heslem. Zkuste prosím " "jiný způsob." -#: daemon/gdm-session-worker.c:753 -msgid "" -"You reached the maximum PIN authentication attempts, please try another " -"method" -msgstr "" -"Narazili jste na maximální možný počet pokusů ověření kódem PIN. Zkuste " -"prosím jiný způsob." - -#: daemon/gdm-session-worker.c:756 +#: daemon/gdm-session-worker.c:755 msgid "" "You reached the maximum auto login attempts, please try another " "authentication method" @@ -219,7 +199,7 @@ "Narazili jste na maximální možný počet pokusů automatického přihlášení. " "Zkuste prosím jiný způsob." -#: daemon/gdm-session-worker.c:759 +#: daemon/gdm-session-worker.c:758 msgid "" "You reached the maximum fingerprint authentication attempts, please try " "another method" @@ -227,7 +207,7 @@ "Narazili jste na maximální možný počet pokusů ověření otiskem prstu. Zkuste " "prosím jiný způsob." -#: daemon/gdm-session-worker.c:762 +#: daemon/gdm-session-worker.c:761 msgid "" "You reached the maximum smart card authentication attempts, please try " "another method" @@ -235,56 +215,50 @@ "Narazili jste na maximální možný počet pokusů ověření čipovou kartou. Zkuste " "prosím jiný způsob." -#: daemon/gdm-session-worker.c:764 +#: daemon/gdm-session-worker.c:763 msgid "" "You reached the maximum authentication attempts, please try another method" msgstr "" "Narazili jste na maximální možný počet pokusů ověření. Zkuste prosím jiný " "způsob." -#: daemon/gdm-session-worker.c:771 +#: daemon/gdm-session-worker.c:770 msgid "Sorry, password authentication didn’t work. Please try again." msgstr "Bohužel, ale ověření heslem nefunguje. Zkuste to prosím znovu." -#: daemon/gdm-session-worker.c:774 -msgid "Sorry, PIN authentication didn’t work. Please try again." -msgstr "Bohužel, ale ověření kódem PIN nefunguje. Zkuste to prosím znovu." - -#: daemon/gdm-session-worker.c:777 +#: daemon/gdm-session-worker.c:773 msgid "Sorry, auto login didn’t work. Please try again." -msgstr "" -"Bohužel, ale automatické přihlášení nefunguje. Zkuste to prosím znovu." +msgstr "Bohužel, ale automatické přihlášení nefunguje. Zkuste to prosím znovu." -#: daemon/gdm-session-worker.c:780 +#: daemon/gdm-session-worker.c:776 msgid "Sorry, fingerprint authentication didn’t work. Please try again." msgstr "Bohužel, ale ověření otiskem prstu nefunguje. Zkuste to prosím znovu." -#: daemon/gdm-session-worker.c:783 +#: daemon/gdm-session-worker.c:779 msgid "Sorry, smart card authentication didn’t work. Please try again." -msgstr "" -"Bohužel, ale ověření čipovou kartou nefunguje. Zkuste to prosím znovu." +msgstr "Bohužel, ale ověření čipovou kartou nefunguje. Zkuste to prosím znovu." -#: daemon/gdm-session-worker.c:785 +#: daemon/gdm-session-worker.c:781 msgid "Sorry, that didn’t work. Please try again." msgstr "Bohužel, ale nefunguje to. Zkuste to prosím znovu." -#: daemon/gdm-session-worker.c:800 +#: daemon/gdm-session-worker.c:796 msgid "Your account was given a time limit that’s now passed." msgstr "Váš účet měl omezenou časovou platnost, která nyní vypršela." -#: daemon/gdm-session-worker.c:1202 +#: daemon/gdm-session-worker.c:1197 msgid "Username:" msgstr "Uživatel:" -#: daemon/gdm-session-worker.c:1704 daemon/gdm-session-worker.c:1721 +#: daemon/gdm-session-worker.c:1597 daemon/gdm-session-worker.c:1614 msgid "no user account available" msgstr "není dostupný žádný uživatelský účet" -#: daemon/gdm-session-worker.c:1748 +#: daemon/gdm-session-worker.c:1641 msgid "Unable to change to user" msgstr "Nelze změnit uživatele" -#: daemon/gdm-wayland-session.c:511 +#: daemon/gdm-wayland-session.c:531 msgid "GNOME Display Manager Wayland Session Launcher" msgstr "Spuštění sezení GNOME se správcem zobrazení Wayland" @@ -292,15 +266,15 @@ msgid "Could not create socket!" msgstr "Nelze vytvořit socket!" -#: daemon/gdm-x-session.c:859 +#: daemon/gdm-x-session.c:879 msgid "Run program through /etc/gdm/Xsession wrapper script" msgstr "Spustit program skrz obalující skript /etc/gdm/Xsession" -#: daemon/gdm-x-session.c:860 +#: daemon/gdm-x-session.c:880 msgid "Listen on TCP socket" msgstr "Naslouchat na soketu TCP" -#: daemon/gdm-x-session.c:872 +#: daemon/gdm-x-session.c:892 msgid "GNOME Display Manager X Session Launcher" msgstr "Spuštění sezení GNOME se správcem zobrazení X" @@ -337,24 +311,24 @@ msgid "The GDM group should not be root. Aborting!" msgstr "Skupina GDM nesmí být superuživatelem. Končí se!" -#: daemon/main.c:317 +#: daemon/main.c:309 msgid "Make all warnings fatal" msgstr "Učiní všechna varování kritickými" -#: daemon/main.c:318 +#: daemon/main.c:310 msgid "Exit after a time (for debugging)" msgstr "Ukončit po malé prodlevě (kvůli ladění)" -#: daemon/main.c:319 +#: daemon/main.c:311 msgid "Print GDM version" msgstr "Vypsat verzi GDM" -#: daemon/main.c:330 +#: daemon/main.c:322 msgid "GNOME Display Manager" msgstr "Správce displeje GNOME" #. make sure the pid file doesn't get wiped -#: daemon/main.c:350 +#: daemon/main.c:342 msgid "Only the root user can run GDM" msgstr "Spustit GDM může pouze superuživatel" @@ -513,3 +487,23 @@ #: utils/gdm-screenshot.c:279 msgid "Take a picture of the screen" msgstr "Pořídit snímek obrazovky" + +#~ msgid "" +#~ "The system is unable to determine whether to switch to an existing login " +#~ "screen or start up a new login screen." +#~ msgstr "" +#~ "Systém není schopen určit, zda má přepnout na existující přihlašovací " +#~ "obrazovku, nebo spustit novou přihlašovací obrazovku." + +#~ msgid "The system is unable to start up a new login screen." +#~ msgstr "Systém není schopen spustit novou přihlašovací obrazovku." + +#~ msgid "" +#~ "You reached the maximum PIN authentication attempts, please try another " +#~ "method" +#~ msgstr "" +#~ "Narazili jste na maximální možný počet pokusů ověření kódem PIN. Zkuste " +#~ "prosím jiný způsob." + +#~ msgid "Sorry, PIN authentication didn’t work. Please try again." +#~ msgstr "Bohužel, ale ověření kódem PIN nefunguje. Zkuste to prosím znovu." diff -Nru gdm3-44.1/po/el.po gdm3-45~beta/po/el.po --- gdm3-44.1/po/el.po 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/po/el.po 2023-08-29 16:11:10.000000000 +0000 @@ -33,16 +33,16 @@ msgstr "" "Project-Id-Version: gdm.HEAD\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gdm/issues\n" -"POT-Creation-Date: 2022-07-07 18:00+0000\n" -"PO-Revision-Date: 2022-09-09 12:36+0300\n" -"Last-Translator: Efstathios Iosifidis \n" +"POT-Creation-Date: 2023-06-28 18:12+0000\n" +"PO-Revision-Date: 2023-08-01 23:21+0300\n" +"Last-Translator: Efstathios Iosifidis \n" "Language-Team: Greek, Modern (1453-) \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.1.1\n" +"X-Generator: Poedit 3.3.2\n" "X-Project-Style: gnome\n" #: chooser/gdm-host-chooser-dialog.c:139 @@ -84,20 +84,24 @@ msgid "/dev/urandom is not a character device" msgstr "Το /dev/urandom δεν είναι μια συσκευή χαρακτήρων" -#: common/gdm-common.c:501 libgdm/gdm-user-switching.c:207 +#: common/gdm-common.c:346 +msgid "Unable to create transient display: " +msgstr "Αδυναμία δημιουργίας παροδικής εμφάνισης: " + +#: common/gdm-common.c:511 msgid "Could not identify the current session: " msgstr "Αδυναμία αναγνώρισης της τρέχουσας συνεδρίας: " -#: common/gdm-common.c:510 libgdm/gdm-user-switching.c:216 +#: common/gdm-common.c:520 msgid "Could not identify the current seat." msgstr "Αδυναμία αναγνώρισης της παρούσας θέσης." -#: daemon/gdm-display-access-file.c:298 +#: daemon/gdm-display-access-file.c:278 daemon/gdm-display-access-file.c:299 #, c-format -msgid "could not find user “%s” on system" -msgstr "αδυναμία εύρεσης του χρήστη «%s» στο σύστημα" +msgid "Could not find user “%s” on system" +msgstr "Δεν ήταν δυνατή η εύρεση του χρήστη «%s» στο σύστημα" -#: daemon/gdm-legacy-display.c:236 +#: daemon/gdm-legacy-display.c:226 msgid "" "Could not start the X server (your graphical environment) due to an internal " "error. Please contact your system administrator or check your syslog to " @@ -109,27 +113,27 @@ "ελέγξτε το syslog για διάγνωση. Στο μεταξύ αυτή η οθόνη θα απενεργοποιηθεί. " "Επανεκκινήστε το GDM όταν διορθωθεί το πρόβλημα." -#: daemon/gdm-manager.c:764 +#: daemon/gdm-manager.c:769 msgid "No display available" msgstr "Καμία διαθέσιμη εμφάνιση" -#: daemon/gdm-manager.c:862 daemon/gdm-manager.c:1146 +#: daemon/gdm-manager.c:867 daemon/gdm-manager.c:1151 msgid "No session available" msgstr "Καμία διαθέσιμη συνεδρία" -#: daemon/gdm-manager.c:881 +#: daemon/gdm-manager.c:886 msgid "Chooser session unavailable" msgstr "Μη διαθέσιμη η συνεδρία επιλογέα" -#: daemon/gdm-manager.c:897 +#: daemon/gdm-manager.c:902 msgid "Can only be called before user is logged in" msgstr "Μπορεί μόνο να κληθεί πριν συνδεθεί ο χρήστης" -#: daemon/gdm-manager.c:908 +#: daemon/gdm-manager.c:913 msgid "Caller not GDM" msgstr "Ο καλών δεν είναι GDM" -#: daemon/gdm-manager.c:918 +#: daemon/gdm-manager.c:923 msgid "Unable to open private communication channel" msgstr "Αδυναμία ανοίγματος ιδιωτικού καναλιού επικοινωνίας" @@ -159,23 +163,23 @@ msgstr "Αποτυχία ορισμού της ταυτότητας χρήστη σε %d" # -#: daemon/gdm-server.c:485 +#: daemon/gdm-server.c:479 #, c-format msgid "%s: Could not open log file for display %s!" msgstr "%s: Αποτυχία ανοίγματος αρχείου καταγραφών για εμφάνιση %s!" -#: daemon/gdm-server.c:506 daemon/gdm-server.c:512 daemon/gdm-server.c:518 +#: daemon/gdm-server.c:500 daemon/gdm-server.c:506 daemon/gdm-server.c:512 #, c-format msgid "%s: Error setting %s to %s" msgstr "%s: Σφάλμα ρύθμισης %s σε %s" # -#: daemon/gdm-server.c:538 +#: daemon/gdm-server.c:532 #, c-format msgid "%s: Server priority couldn’t be set to %d: %s" msgstr "%s: Η προτεραιότητα του διακομιστή δεν μπορεί να ορισθεί σε %d: %s" -#: daemon/gdm-server.c:690 +#: daemon/gdm-server.c:684 #, c-format msgid "%s: Empty server command for display %s" msgstr "%s: Κενή εντολή διακομιστή για εμφάνιση %s" @@ -205,11 +209,11 @@ msgstr "Η συσκευή απεικόνισης" # -#: daemon/gdm-session.c:1334 +#: daemon/gdm-session.c:1336 msgid "Could not create authentication helper process" msgstr "Αδυναμία δημιουργίας διεργασίας βοηθού πιστοποίησης" -#: daemon/gdm-session-worker.c:755 +#: daemon/gdm-session-worker.c:741 msgid "" "You reached the maximum password authentication attempts, please try another " "method" @@ -217,7 +221,7 @@ "Φτάσατε τις μέγιστες προσπάθειες ελέγχου αυθεντικοποίησης συνθηματικού, " "δοκιμάστε άλλη μέθοδο" -#: daemon/gdm-session-worker.c:758 +#: daemon/gdm-session-worker.c:744 msgid "" "You reached the maximum auto login attempts, please try another " "authentication method" @@ -225,7 +229,7 @@ "Φτάσατε τις μέγιστες προσπάθειες αυτόματης σύνδεσης, δοκιμάστε άλλη μέθοδο " "αυθεντικοποίησης" -#: daemon/gdm-session-worker.c:761 +#: daemon/gdm-session-worker.c:747 msgid "" "You reached the maximum fingerprint authentication attempts, please try " "another method" @@ -233,7 +237,7 @@ "Φτάσατε τις μέγιστες προσπάθειες αυθεντικοποίησης με δακτυλικό αποτύπωμα, " "δοκιμάστε άλλη μέθοδο" -#: daemon/gdm-session-worker.c:764 +#: daemon/gdm-session-worker.c:750 msgid "" "You reached the maximum smart card authentication attempts, please try " "another method" @@ -241,52 +245,52 @@ "Φτάσατε τις μέγιστες προσπάθειες αυθεντικοποίησης με έξυπνη κάρτα, δοκιμάστε " "άλλη μέθοδο" -#: daemon/gdm-session-worker.c:766 +#: daemon/gdm-session-worker.c:752 msgid "" "You reached the maximum authentication attempts, please try another method" msgstr "" "Φτάσατε τις μέγιστες προσπάθειες αυθεντικοποίησης, δοκιμάστε άλλη μέθοδο" -#: daemon/gdm-session-worker.c:773 +#: daemon/gdm-session-worker.c:759 msgid "Sorry, password authentication didn’t work. Please try again." msgstr "" "Συγνώμη, η αυθεντικοποίηση με συνθηματικό δεν λειτούργησε. Παρακαλούμε " "προσπαθήστε ξανά." -#: daemon/gdm-session-worker.c:776 +#: daemon/gdm-session-worker.c:762 msgid "Sorry, auto login didn’t work. Please try again." msgstr "" "Συγνώμη, η αυτόματη είσοδος δεν λειτούργησε. Παρακαλούμε προσπαθήστε ξανά." -#: daemon/gdm-session-worker.c:779 +#: daemon/gdm-session-worker.c:765 msgid "Sorry, fingerprint authentication didn’t work. Please try again." msgstr "" "Συγνώμη, η αυθεντικοποίηση με δακτυλικά αποτυπώματα δεν λειτούργησε. " "Παρακαλούμε προσπαθήστε ξανά." -#: daemon/gdm-session-worker.c:782 +#: daemon/gdm-session-worker.c:768 msgid "Sorry, smart card authentication didn’t work. Please try again." msgstr "" "Συγνώμη, η αυθεντικοποίηση με έξυπνη κάρτα δεν λειτούργησε. Παρακαλούμε " "προσπαθήστε ξανά." -#: daemon/gdm-session-worker.c:784 +#: daemon/gdm-session-worker.c:770 msgid "Sorry, that didn’t work. Please try again." msgstr "Συγνώμη, αυτό δεν λειτούργησε. Παρακαλούμε προσπαθήστε ξανά." -#: daemon/gdm-session-worker.c:799 +#: daemon/gdm-session-worker.c:785 msgid "Your account was given a time limit that’s now passed." msgstr "Έχει περάσει το χρονικό όριο που δώθηκε στον λογαριασμό σας." -#: daemon/gdm-session-worker.c:1199 +#: daemon/gdm-session-worker.c:1186 msgid "Username:" msgstr "Όνομα χρήστη:" -#: daemon/gdm-session-worker.c:1600 daemon/gdm-session-worker.c:1617 +#: daemon/gdm-session-worker.c:1585 daemon/gdm-session-worker.c:1602 msgid "no user account available" msgstr "δεν υπάρχει διαθέσιμος λογαριασμός χρήστη" -#: daemon/gdm-session-worker.c:1644 +#: daemon/gdm-session-worker.c:1629 msgid "Unable to change to user" msgstr "Αδυναμία αλλαγής σε χρήστη" @@ -374,7 +378,7 @@ #. Translators: worker is a helper process that does the work #. of starting up a session -#: daemon/session-worker-main.c:119 +#: daemon/session-worker-main.c:127 msgid "GNOME Display Manager Session Worker" msgstr "Βοηθός εκκίνησης συνεδρίας διαχειριστή οθόνης GNOME" @@ -492,14 +496,6 @@ "Πόσες φορές ένας χρήστης επιτρέπεται να πιστοποιηθεί, προτού τα παρατήσει " "και επιστρέψει στην επιλογή του χρήστη." -#: libgdm/gdm-user-switching.c:59 -msgid "Unable to create transient display: " -msgstr "Αδυναμία δημιουργίας παροδικής εμφάνισης: " - -#: libgdm/gdm-user-switching.c:90 -msgid "Unable to activate session: " -msgstr "Αδυναμία ενεργοποίησης συνεδρίας: " - #: utils/gdmflexiserver.c:45 msgid "Only the VERSION command is supported" msgstr "Υποστηρίζεται μόνο η εντολή VERSION" @@ -535,6 +531,9 @@ msgid "Take a picture of the screen" msgstr "Λήψη φωτογραφίας της οθόνης" +#~ msgid "Unable to activate session: " +#~ msgstr "Αδυναμία ενεργοποίησης συνεδρίας: " + #~ msgid "" #~ "The system is unable to determine whether to switch to an existing login " #~ "screen or start up a new login screen." diff -Nru gdm3-44.1/po/it.po gdm3-45~beta/po/it.po --- gdm3-44.1/po/it.po 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/po/it.po 2023-08-29 16:11:10.000000000 +0000 @@ -9,23 +9,22 @@ # Francesco Marletta , 2004, 2005, 2006, 2007, 2008, 2009, 2010. # Milo Casagrande , 2010, 2011, 2012, 2017, 2018, 2019, 2021. # Claudio Arseni , 2011, 2012, 2013, 2015. -# -# Gianvito Cavasoli , 2016. +# Gianvito Cavasoli , 2016-2023. # msgid "" msgstr "" "Project-Id-Version: gdm\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gdm/issues\n" -"POT-Creation-Date: 2021-02-25 19:41+0000\n" -"PO-Revision-Date: 2021-03-15 09:13+0100\n" -"Last-Translator: Milo Casagrande \n" -"Language-Team: Italiano \n" +"POT-Creation-Date: 2023-05-05 13:01+0000\n" +"PO-Revision-Date: 2023-05-16 11:27+0200\n" +"Last-Translator: Gianvito Cavasoli \n" +"Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.4.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"X-Generator: Gtranslator 42.0\n" #: chooser/gdm-host-chooser-dialog.c:139 msgid "_Refresh" @@ -65,20 +64,20 @@ msgid "/dev/urandom is not a character device" msgstr "/dev/urandom non è un device a caratteri" -#: common/gdm-common.c:501 libgdm/gdm-user-switching.c:207 +#: common/gdm-common.c:507 libgdm/gdm-user-switching.c:207 msgid "Could not identify the current session: " msgstr "Impossibile identificare la sessione attuale: " -#: common/gdm-common.c:510 libgdm/gdm-user-switching.c:216 +#: common/gdm-common.c:516 libgdm/gdm-user-switching.c:216 msgid "Could not identify the current seat." msgstr "Impossibile identificare la postazione attuale." -#: daemon/gdm-display-access-file.c:298 +#: daemon/gdm-display-access-file.c:278 daemon/gdm-display-access-file.c:299 #, c-format -msgid "could not find user “%s” on system" -msgstr "impossibile trovare l'utente «%s» nel sistema" +msgid "Could not find user “%s” on system" +msgstr "Impossibile trovare l'utente «%s» nel sistema" -#: daemon/gdm-legacy-display.c:236 +#: daemon/gdm-legacy-display.c:226 msgid "" "Could not start the X server (your graphical environment) due to an internal " "error. Please contact your system administrator or check your syslog to " @@ -90,67 +89,67 @@ "registro di sistema (syslog) per la diagnosi del problema: per adesso il " "display verrà disabilitato. Una volta risolto il problema, riavviare GDM." -#: daemon/gdm-manager.c:764 +#: daemon/gdm-manager.c:769 msgid "No display available" msgstr "Nessun display disponibile" -#: daemon/gdm-manager.c:862 daemon/gdm-manager.c:1146 +#: daemon/gdm-manager.c:867 daemon/gdm-manager.c:1151 msgid "No session available" msgstr "Nessuna sessione disponibile" -#: daemon/gdm-manager.c:881 +#: daemon/gdm-manager.c:886 msgid "Chooser session unavailable" msgstr "Nessun selettore di sessione disponibile" -#: daemon/gdm-manager.c:897 +#: daemon/gdm-manager.c:902 msgid "Can only be called before user is logged in" msgstr "Può essere chiamato solo prima dell'accesso utente" -#: daemon/gdm-manager.c:908 +#: daemon/gdm-manager.c:913 msgid "Caller not GDM" msgstr "Chiamante non GDM" -#: daemon/gdm-manager.c:918 +#: daemon/gdm-manager.c:923 msgid "Unable to open private communication channel" msgstr "Impossibile aprire un canale di comunicazione privato" -#: daemon/gdm-server.c:383 +#: daemon/gdm-server.c:384 #, c-format msgid "Server was to be spawned by user %s but that user doesn’t exist" msgstr "" "Il server doveva essere lanciato dall'utente %s ma questo utente non esiste" -#: daemon/gdm-server.c:394 daemon/gdm-server.c:414 +#: daemon/gdm-server.c:395 daemon/gdm-server.c:415 #, c-format msgid "Couldn’t set groupid to %d" msgstr "Impossibile impostare il groupid a %d" -#: daemon/gdm-server.c:400 +#: daemon/gdm-server.c:401 #, c-format msgid "initgroups () failed for %s" msgstr "initgroups() per %s non riuscita" -#: daemon/gdm-server.c:406 +#: daemon/gdm-server.c:407 #, c-format msgid "Couldn’t set userid to %d" msgstr "Impossibile impostare lo userid a %d" -#: daemon/gdm-server.c:484 +#: daemon/gdm-server.c:479 #, c-format msgid "%s: Could not open log file for display %s!" msgstr "%s: impossibile aprire il file di registro per il display %s." -#: daemon/gdm-server.c:505 daemon/gdm-server.c:511 daemon/gdm-server.c:517 +#: daemon/gdm-server.c:500 daemon/gdm-server.c:506 daemon/gdm-server.c:512 #, c-format msgid "%s: Error setting %s to %s" msgstr "%s: errore nell'impostare %s a %s" -#: daemon/gdm-server.c:537 +#: daemon/gdm-server.c:532 #, c-format msgid "%s: Server priority couldn’t be set to %d: %s" msgstr "%s: la priorità del server non può essere impostata a %d: %s" -#: daemon/gdm-server.c:689 +#: daemon/gdm-server.c:684 #, c-format msgid "%s: Empty server command for display %s" msgstr "%s: comando server mancante per il display %s" @@ -180,11 +179,11 @@ msgstr "Il dispositivo del display" # [NdT] la traduco la parte tra ""? -#: daemon/gdm-session.c:1288 +#: daemon/gdm-session.c:1336 msgid "Could not create authentication helper process" msgstr "Impossibile creare il processo di aiuto per l'autenticazione" -#: daemon/gdm-session-worker.c:750 +#: daemon/gdm-session-worker.c:741 msgid "" "You reached the maximum password authentication attempts, please try another " "method" @@ -192,15 +191,7 @@ "Raggiunto il massimo dei tentativi di autenticazione della password, provare " "un altro metodo" -#: daemon/gdm-session-worker.c:753 -msgid "" -"You reached the maximum PIN authentication attempts, please try another " -"method" -msgstr "" -"Raggiunto il massimo dei tentativi di autenticazione del PIN, provare un " -"altro metodo" - -#: daemon/gdm-session-worker.c:756 +#: daemon/gdm-session-worker.c:744 msgid "" "You reached the maximum auto login attempts, please try another " "authentication method" @@ -208,7 +199,7 @@ "Raggiunto il massimo dei tentativi di accesso automatico, provare un altro " "metodo di autenticazione" -#: daemon/gdm-session-worker.c:759 +#: daemon/gdm-session-worker.c:747 msgid "" "You reached the maximum fingerprint authentication attempts, please try " "another method" @@ -216,7 +207,7 @@ "Raggiunto il massimo dei tentativi di autenticazione delle impronte " "digitali, provare un altro metodo" -#: daemon/gdm-session-worker.c:762 +#: daemon/gdm-session-worker.c:750 msgid "" "You reached the maximum smart card authentication attempts, please try " "another method" @@ -224,49 +215,45 @@ "Raggiunto il massimo dei tentativi di autenticazione della smart card, " "provare un altro metodo" -#: daemon/gdm-session-worker.c:764 +#: daemon/gdm-session-worker.c:752 msgid "" "You reached the maximum authentication attempts, please try another method" msgstr "" "Raggiunto il massimo dei tentativi di autenticazione, provare un altro metodo" -#: daemon/gdm-session-worker.c:771 +#: daemon/gdm-session-worker.c:759 msgid "Sorry, password authentication didn’t work. Please try again." msgstr "L'autenticazione della password non ha funzionato, riprovare." -#: daemon/gdm-session-worker.c:774 -msgid "Sorry, PIN authentication didn’t work. Please try again." -msgstr "L'autenticazione del PIN non ha funzionato, riprovare." - -#: daemon/gdm-session-worker.c:777 +#: daemon/gdm-session-worker.c:762 msgid "Sorry, auto login didn’t work. Please try again." msgstr "L'accesso automatico non ha funzionato, riprovare." -#: daemon/gdm-session-worker.c:780 +#: daemon/gdm-session-worker.c:765 msgid "Sorry, fingerprint authentication didn’t work. Please try again." msgstr "L'autenticazione delle impronte digitali non ha funzionato, riprovare." -#: daemon/gdm-session-worker.c:783 +#: daemon/gdm-session-worker.c:768 msgid "Sorry, smart card authentication didn’t work. Please try again." msgstr "L'autenticazione della smart card non ha funzionato, riprovare." -#: daemon/gdm-session-worker.c:785 +#: daemon/gdm-session-worker.c:770 msgid "Sorry, that didn’t work. Please try again." msgstr "Non funziona. Provare nuovamente." -#: daemon/gdm-session-worker.c:800 +#: daemon/gdm-session-worker.c:785 msgid "Your account was given a time limit that’s now passed." msgstr "È stata superata la scadenza impostata per l'account." -#: daemon/gdm-session-worker.c:1202 +#: daemon/gdm-session-worker.c:1186 msgid "Username:" msgstr "Utente:" -#: daemon/gdm-session-worker.c:1711 daemon/gdm-session-worker.c:1728 +#: daemon/gdm-session-worker.c:1582 daemon/gdm-session-worker.c:1599 msgid "no user account available" msgstr "nessun account utente disponibile" -#: daemon/gdm-session-worker.c:1755 +#: daemon/gdm-session-worker.c:1626 msgid "Unable to change to user" msgstr "Impossibile cambiare utente" @@ -326,31 +313,31 @@ msgid "The GDM group should not be root. Aborting!" msgstr "Il gruppo di GDM non dovrebbe essere «root». Chiusura in corso." -#: daemon/main.c:317 +#: daemon/main.c:309 msgid "Make all warnings fatal" msgstr "Rende tutti gli avvertimenti fatali" -#: daemon/main.c:318 +#: daemon/main.c:310 msgid "Exit after a time (for debugging)" msgstr "Uscita dopo un certo tempo (per il debug)" -#: daemon/main.c:319 +#: daemon/main.c:311 msgid "Print GDM version" msgstr "Visualizza la versione di GDM" -#: daemon/main.c:330 +#: daemon/main.c:322 msgid "GNOME Display Manager" msgstr "Gestore schermo di GNOME" #. make sure the pid file doesn't get wiped -#: daemon/main.c:350 +#: daemon/main.c:342 msgid "Only the root user can run GDM" msgstr "Solo l'utente root può avviare GDM" # NdT: ho lasciato worker perché non mi veniva niente di meglio #. Translators: worker is a helper process that does the work #. of starting up a session -#: daemon/session-worker-main.c:119 +#: daemon/session-worker-main.c:127 msgid "GNOME Display Manager Session Worker" msgstr "Worker di sessione del Gestore schermo di GNOME" diff -Nru gdm3-44.1/po/kk.po gdm3-45~beta/po/kk.po --- gdm3-44.1/po/kk.po 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/po/kk.po 2023-08-29 16:11:10.000000000 +0000 @@ -2,7 +2,7 @@ msgstr "" "Project-Id-Version: gdm to kazakh\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gdm/issues\n" -"POT-Creation-Date: 2021-02-25 19:41+0000\n" +"POT-Creation-Date: 2023-06-28 18:12+0000\n" "PO-Revision-Date: \n" "Last-Translator: Baurzhan Muftakhidinov \n" "Language-Team: Kazakh \n" @@ -11,7 +11,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 2.4.2\n" +"X-Generator: Poedit 3.3.2\n" #: chooser/gdm-host-chooser-dialog.c:139 msgid "_Refresh" @@ -49,20 +49,24 @@ msgid "/dev/urandom is not a character device" msgstr "/dev/urandom символдық құрылғы емес" -#: common/gdm-common.c:501 libgdm/gdm-user-switching.c:207 +#: common/gdm-common.c:346 +msgid "Unable to create transient display: " +msgstr "Аралық экранды жасау мүмкін емес: " + +#: common/gdm-common.c:511 msgid "Could not identify the current session: " msgstr "Ағымдағы сессияны анықтау мүмкін емес: " -#: common/gdm-common.c:510 libgdm/gdm-user-switching.c:216 +#: common/gdm-common.c:520 msgid "Could not identify the current seat." msgstr "Ағымдағы отыру орнын анықтау мүмкін емес." -#: daemon/gdm-display-access-file.c:298 +#: daemon/gdm-display-access-file.c:278 daemon/gdm-display-access-file.c:299 #, c-format -msgid "could not find user “%s” on system" -msgstr "жүйеден \"%s\" пайдаланушысы табылмады" +msgid "Could not find user “%s” on system" +msgstr "Жүйеден \"%s\" пайдаланушысы табылмады" -#: daemon/gdm-legacy-display.c:236 +#: daemon/gdm-legacy-display.c:226 msgid "" "Could not start the X server (your graphical environment) due to an internal " "error. Please contact your system administrator or check your syslog to " @@ -74,66 +78,66 @@ "шығысын тексеріңіз. Бұл экран уақытша сөндіріледі. Мәселе шешілген кезде GDM " "қызметін қайта қосыңыз." -#: daemon/gdm-manager.c:764 +#: daemon/gdm-manager.c:769 msgid "No display available" msgstr "Қолжетерлік дисплей жоқ" -#: daemon/gdm-manager.c:862 daemon/gdm-manager.c:1146 +#: daemon/gdm-manager.c:867 daemon/gdm-manager.c:1151 msgid "No session available" msgstr "Қолжетімді сессиялар жоқ" -#: daemon/gdm-manager.c:881 +#: daemon/gdm-manager.c:886 msgid "Chooser session unavailable" msgstr "Таңдаушы сессиясы қолжетерсіз" -#: daemon/gdm-manager.c:897 +#: daemon/gdm-manager.c:902 msgid "Can only be called before user is logged in" msgstr "Пайдаланушы кіргенге дейін ғана шақыруға болады" -#: daemon/gdm-manager.c:908 +#: daemon/gdm-manager.c:913 msgid "Caller not GDM" msgstr "Шақырушы GDM емес" -#: daemon/gdm-manager.c:918 +#: daemon/gdm-manager.c:923 msgid "Unable to open private communication channel" msgstr "Жеке хабарласу арнасын ашу мүмкін емес" -#: daemon/gdm-server.c:383 +#: daemon/gdm-server.c:384 #, c-format msgid "Server was to be spawned by user %s but that user doesn’t exist" msgstr "Серверді %s пайдаланушысы қосқан, бірақ ол пайдаланушысы жоқ болып тұр" -#: daemon/gdm-server.c:394 daemon/gdm-server.c:414 +#: daemon/gdm-server.c:395 daemon/gdm-server.c:415 #, c-format msgid "Couldn’t set groupid to %d" msgstr "Groupid мәнін %d-ға орнату қатесі" -#: daemon/gdm-server.c:400 +#: daemon/gdm-server.c:401 #, c-format msgid "initgroups () failed for %s" msgstr "%s үшін initgroups () қатесі" -#: daemon/gdm-server.c:406 +#: daemon/gdm-server.c:407 #, c-format msgid "Couldn’t set userid to %d" msgstr "Userid мәнін %d-ға орнату қатесі" -#: daemon/gdm-server.c:484 +#: daemon/gdm-server.c:479 #, c-format msgid "%s: Could not open log file for display %s!" msgstr "%s: %s экраны үшін лог файлын ашу мүмкін емес!" -#: daemon/gdm-server.c:505 daemon/gdm-server.c:511 daemon/gdm-server.c:517 +#: daemon/gdm-server.c:500 daemon/gdm-server.c:506 daemon/gdm-server.c:512 #, c-format msgid "%s: Error setting %s to %s" msgstr "%s: %s жаңа %s мәніне орнату қатесі" -#: daemon/gdm-server.c:537 +#: daemon/gdm-server.c:532 #, c-format msgid "%s: Server priority couldn’t be set to %d: %s" msgstr "%s: Сервердің приоритеті %d мәніне орнатуға болмайды: %s" -#: daemon/gdm-server.c:689 +#: daemon/gdm-server.c:684 #, c-format msgid "%s: Empty server command for display %s" msgstr "%s: %s экраны үшін бос сервер командасы" @@ -162,11 +166,11 @@ msgid "The display device" msgstr "Экран құрылғысы" -#: daemon/gdm-session.c:1288 +#: daemon/gdm-session.c:1336 msgid "Could not create authentication helper process" msgstr "Аутентификациясының көмекші үрдісін жасау мүмкін емес" -#: daemon/gdm-session-worker.c:750 +#: daemon/gdm-session-worker.c:741 msgid "" "You reached the maximum password authentication attempts, please try another " "method" @@ -174,15 +178,7 @@ "Сіз парольмен аутентификациялау талаптарының максималды санына жеттіңіз, " "басқа тәсілді қолданып көріңіз" -#: daemon/gdm-session-worker.c:753 -msgid "" -"You reached the maximum PIN authentication attempts, please try another " -"method" -msgstr "" -"Сіз PIN арқылы аутентификациялау талаптарының максималды санына жеттіңіз, " -"басқа тәсілді қолданып көріңіз" - -#: daemon/gdm-session-worker.c:756 +#: daemon/gdm-session-worker.c:744 msgid "" "You reached the maximum auto login attempts, please try another " "authentication method" @@ -190,7 +186,7 @@ "Сіз автоматты түрде кіру талаптарының максималды санына жеттіңіз, басқа " "тәсілді қолданып көріңіз" -#: daemon/gdm-session-worker.c:759 +#: daemon/gdm-session-worker.c:747 msgid "" "You reached the maximum fingerprint authentication attempts, please try " "another method" @@ -198,7 +194,7 @@ "Сіз саусақ ізімен аутентификациялау талаптарының максималды санына жеттіңіз, " "басқа тәсілді қолданып көріңіз" -#: daemon/gdm-session-worker.c:762 +#: daemon/gdm-session-worker.c:750 msgid "" "You reached the maximum smart card authentication attempts, please try " "another method" @@ -206,55 +202,50 @@ "Сіз смарткарта арқылы аутентификациялау талаптарының максималды санына " "жеттіңіз, басқа тәсілді қолданып көріңіз" -#: daemon/gdm-session-worker.c:764 +#: daemon/gdm-session-worker.c:752 msgid "" "You reached the maximum authentication attempts, please try another method" msgstr "" "Сіз аутентификациялау талаптарының максималды санына жеттіңіз, басқа тәсілді " "қолданып көріңіз" -#: daemon/gdm-session-worker.c:771 +#: daemon/gdm-session-worker.c:759 msgid "Sorry, password authentication didn’t work. Please try again." msgstr "" "Кешіріңіз, парольмен аутентификациялау жұмыс істемеді. Қайтадан көріңіз." -#: daemon/gdm-session-worker.c:774 -msgid "Sorry, PIN authentication didn’t work. Please try again." -msgstr "" -"Кешіріңіз, PIN арқылы аутентификациялау жұмыс істемеді. Қайтадан көріңіз." - -#: daemon/gdm-session-worker.c:777 +#: daemon/gdm-session-worker.c:762 msgid "Sorry, auto login didn’t work. Please try again." msgstr "Кешіріңіз, автоматты түрде кіру жұмыс істемеді. Қайтадан көріңіз." -#: daemon/gdm-session-worker.c:780 +#: daemon/gdm-session-worker.c:765 msgid "Sorry, fingerprint authentication didn’t work. Please try again." msgstr "" "Кешіріңіз, саусақ ізімен аутентификациялау жұмыс істемеді. Қайтадан көріңіз." -#: daemon/gdm-session-worker.c:783 +#: daemon/gdm-session-worker.c:768 msgid "Sorry, smart card authentication didn’t work. Please try again." msgstr "" "Кешіріңіз, смарткарта арқылы аутентификациялау жұмыс істемеді. Қайтадан " "көріңіз." -#: daemon/gdm-session-worker.c:785 +#: daemon/gdm-session-worker.c:770 msgid "Sorry, that didn’t work. Please try again." msgstr "Кешіріңіз, бұл дұрыс емес болды. Қайтадан көріңіз." -#: daemon/gdm-session-worker.c:800 +#: daemon/gdm-session-worker.c:785 msgid "Your account was given a time limit that’s now passed." msgstr "Тіркелгіңіз үшін берілген уақыт мерзімі енді аяқталды." -#: daemon/gdm-session-worker.c:1202 +#: daemon/gdm-session-worker.c:1186 msgid "Username:" msgstr "Пайдаланушы:" -#: daemon/gdm-session-worker.c:1711 daemon/gdm-session-worker.c:1728 +#: daemon/gdm-session-worker.c:1585 daemon/gdm-session-worker.c:1602 msgid "no user account available" msgstr "қолжетерлік пайдаланушы тіркелгілер жоқ" -#: daemon/gdm-session-worker.c:1755 +#: daemon/gdm-session-worker.c:1629 msgid "Unable to change to user" msgstr "Пайдаланушыға ауысу мүмкін емес" @@ -311,30 +302,30 @@ msgid "The GDM group should not be root. Aborting!" msgstr "GDM тобы root болмауы керек. Тоқтатылады!" -#: daemon/main.c:317 +#: daemon/main.c:309 msgid "Make all warnings fatal" msgstr "Барлық ескертулерді фаталды деп белгілеу" -#: daemon/main.c:318 +#: daemon/main.c:310 msgid "Exit after a time (for debugging)" msgstr "Уақыт өте шығу (жөндеу режимі)" -#: daemon/main.c:319 +#: daemon/main.c:311 msgid "Print GDM version" msgstr "GDM нұсқасын көрсету" -#: daemon/main.c:330 +#: daemon/main.c:322 msgid "GNOME Display Manager" msgstr "GNOME Дисплей Менеджері" #. make sure the pid file doesn't get wiped -#: daemon/main.c:350 +#: daemon/main.c:342 msgid "Only the root user can run GDM" msgstr "GDM бағдарламасын тек root жібере алады" #. Translators: worker is a helper process that does the work #. of starting up a session -#: daemon/session-worker-main.c:119 +#: daemon/session-worker-main.c:127 msgid "GNOME Display Manager Session Worker" msgstr "GNOME Display Manager Session Worker" @@ -446,14 +437,6 @@ "Пайдаланушыны таңдау сұхбатына қайта оралуға дейінгі пайдаланушы үшін қанша " "жүйеге кіру талабы рұқсат етіледі." -#: libgdm/gdm-user-switching.c:59 -msgid "Unable to create transient display: " -msgstr "Аралық экранды жасау мүмкін емес: " - -#: libgdm/gdm-user-switching.c:90 -msgid "Unable to activate session: " -msgstr "Сессияны белсендіру мүмкін емес: " - #: utils/gdmflexiserver.c:45 msgid "Only the VERSION command is supported" msgstr "Тек VERSION командасына қолдау бар" @@ -490,6 +473,20 @@ msgstr "Экранның сурет көшірмесін сақтау" #~ msgid "" +#~ "You reached the maximum PIN authentication attempts, please try another " +#~ "method" +#~ msgstr "" +#~ "Сіз PIN арқылы аутентификациялау талаптарының максималды санына жеттіңіз, " +#~ "басқа тәсілді қолданып көріңіз" + +#~ msgid "Sorry, PIN authentication didn’t work. Please try again." +#~ msgstr "" +#~ "Кешіріңіз, PIN арқылы аутентификациялау жұмыс істемеді. Қайтадан көріңіз." + +#~ msgid "Unable to activate session: " +#~ msgstr "Сессияны белсендіру мүмкін емес: " + +#~ msgid "" #~ "The system is unable to determine whether to switch to an existing login " #~ "screen or start up a new login screen." #~ msgstr "" diff -Nru gdm3-44.1/po/pa.po gdm3-45~beta/po/pa.po --- gdm3-44.1/po/pa.po 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/po/pa.po 2023-08-29 16:11:10.000000000 +0000 @@ -5,20 +5,20 @@ # # Amanpreet Singh Alam , 2004. # Amanpreet Singh Alam , 2004,2005,2006, 2007,2008,2009. -# A S Alam , 2009, 2010, 2011, 2012, 2013, 2015, 2016, 2017, 2018, 2019, 2021. +# A S Alam , 2009, 2010, 2011, 2012, 2013, 2015, 2016, 2017, 2018, 2019, 2021, 2023. msgid "" msgstr "" "Project-Id-Version: gdm.HEAD\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gdm/issues\n" -"POT-Creation-Date: 2020-12-21 15:54+0000\n" -"PO-Revision-Date: 2021-01-31 09:47-0800\n" +"POT-Creation-Date: 2023-06-28 18:12+0000\n" +"PO-Revision-Date: 2023-08-19 06:00-0700\n" "Last-Translator: A S Alam \n" "Language-Team: Punjabi \n" "Language: pa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 20.08.1\n" +"X-Generator: Lokalize 23.04.3\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: chooser/gdm-host-chooser-dialog.c:139 @@ -57,33 +57,25 @@ msgid "/dev/urandom is not a character device" msgstr "/dev/urandom ਕਰੈਟਰ ਜੰਤਰ ਨਹੀਂ ਹੈ" -#: common/gdm-common.c:501 libgdm/gdm-user-switching.c:207 +#: common/gdm-common.c:346 +msgid "Unable to create transient display: " +msgstr "ਆਰਜ਼ੀ ਡਿਸਪਲੇਅ ਬਣਾਉਣ ਲਈ ਅਸਮਰੱਥ:" + +#: common/gdm-common.c:511 msgid "Could not identify the current session: " msgstr "ਮੌਜੂਦਾ ਸ਼ੈਸ਼ਨ ਪਛਾਣਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ:" -#: common/gdm-common.c:510 libgdm/gdm-user-switching.c:216 +#: common/gdm-common.c:520 msgid "Could not identify the current seat." msgstr "ਮੌਜੂਦਾ ਸੀਟ ਦੀ ਪਛਾਣ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ।" -#: common/gdm-common.c:520 libgdm/gdm-user-switching.c:226 -msgid "" -"The system is unable to determine whether to switch to an existing login " -"screen or start up a new login screen." -msgstr "" -"ਸਿਸਟਮ ਪਤਾ ਕਰਨ ਲਈ ਅਸਮਰੱਥ ਹੈ ਕਿ ਮੌਜੂਦਾ ਲਾਗਇਨ ਸਕਰੀਨ ਲਈ ਬਦਲਿਆ ਜਾਵੇ ਜਾਂ ਨਵੀਂ ਲਾਗਇਨ" -" ਸਕਰੀਨ " -"ਸ਼ੁਰੂ ਕੀਤੀ ਜਾਵੇ।" - -#: common/gdm-common.c:528 libgdm/gdm-user-switching.c:234 -msgid "The system is unable to start up a new login screen." -msgstr "ਸਿਸਤਮ ਨਵੀਂ ਲਾਗਇਨ ਸਕਰੀਨ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਅਸਮਰੱਥ ਹੈ।" - -#: daemon/gdm-display-access-file.c:298 +#: daemon/gdm-display-access-file.c:278 daemon/gdm-display-access-file.c:299 #, c-format -msgid "could not find user “%s” on system" +#| msgid "could not find user “%s” on system" +msgid "Could not find user “%s” on system" msgstr "ਸਿਸਟਮ ਉੱਤੇ “%s” ਵਰਤੋਂਕਾਰ ਲੱਭਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" -#: daemon/gdm-legacy-display.c:236 +#: daemon/gdm-legacy-display.c:226 msgid "" "Could not start the X server (your graphical environment) due to an internal " "error. Please contact your system administrator or check your syslog to " @@ -96,67 +88,67 @@ " ਦੌਰਾਨ ਇਹ " "ਡਿਸਪਲੇਅ ਅਯੋਗ ਹੋਵੇਗਾ। ਜਦੋਂ ਸਮੱਸਿਆ ਠੀਕ ਹੋ ਜਾਵੇ ਤਾਂ GDM ਮੁੜ ਸ਼ੁਰੂ ਕਰੋ।" -#: daemon/gdm-manager.c:764 +#: daemon/gdm-manager.c:769 msgid "No display available" msgstr "ਕੋਈ ਡਿਸਪਲੇਅ ਮੌਜੂਦ ਨਹੀਂ" -#: daemon/gdm-manager.c:862 daemon/gdm-manager.c:1146 +#: daemon/gdm-manager.c:867 daemon/gdm-manager.c:1151 msgid "No session available" msgstr "ਕੋਈ ਸ਼ੈਸ਼ਨ ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ" -#: daemon/gdm-manager.c:881 +#: daemon/gdm-manager.c:886 msgid "Chooser session unavailable" msgstr "ਚੁਣਿਆ ਸ਼ੈਸ਼ਨ ਉਪਲਬਧ ਨਹੀਂ ਹੈ" -#: daemon/gdm-manager.c:897 +#: daemon/gdm-manager.c:902 msgid "Can only be called before user is logged in" msgstr "ਵਰਤੋਂਕਾਰ ਦੇ ਲਾਗਇਨ ਹੋਣ ਸਮੇਂ ਹੀ ਕਾਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ" -#: daemon/gdm-manager.c:908 +#: daemon/gdm-manager.c:913 msgid "Caller not GDM" msgstr "ਕਾਲਰ GDM ਨਹੀਂ" -#: daemon/gdm-manager.c:918 +#: daemon/gdm-manager.c:923 msgid "Unable to open private communication channel" msgstr "ਪ੍ਰਾਈਵੇਟ ਸੰਚਾਰ ਚੈਨਲ ਖੋਲ੍ਹਣ ਲਈ ਅਸਮਰੱਥ" -#: daemon/gdm-server.c:383 +#: daemon/gdm-server.c:384 #, c-format msgid "Server was to be spawned by user %s but that user doesn’t exist" msgstr "" "ਸਰਵਰ ਨੂੰ %s ਵਰਤੋਂਕਾਰ ਵਲੋਂ ਸਵੈਪ ਕੀਤਾ ਗਿਆ ਸੀ, ਪਰ ਉਹ ਵਰਤੋਂਕਾਰ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।" -#: daemon/gdm-server.c:394 daemon/gdm-server.c:414 +#: daemon/gdm-server.c:395 daemon/gdm-server.c:415 #, c-format msgid "Couldn’t set groupid to %d" msgstr "groupid %d ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ" -#: daemon/gdm-server.c:400 +#: daemon/gdm-server.c:401 #, c-format msgid "initgroups () failed for %s" msgstr "%s ਲਈ initgroups () ਫੇਲ੍ਹ" -#: daemon/gdm-server.c:406 +#: daemon/gdm-server.c:407 #, c-format msgid "Couldn’t set userid to %d" msgstr "userid %d ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ" -#: daemon/gdm-server.c:484 +#: daemon/gdm-server.c:479 #, c-format msgid "%s: Could not open log file for display %s!" msgstr "%s: %s ਡਿਸਪਲੇਅ ਲਈ ਲਾਗ ਫਾਇਲ ਫਾਇਲ ਨਹੀਂ ਖੋਲ੍ਹੀ ਜਾ ਸਕੀ!" -#: daemon/gdm-server.c:505 daemon/gdm-server.c:511 daemon/gdm-server.c:517 +#: daemon/gdm-server.c:500 daemon/gdm-server.c:506 daemon/gdm-server.c:512 #, c-format msgid "%s: Error setting %s to %s" msgstr "%s: ਗਲਤੀ %s ਨੂੰ %s ਸੈੱਟ ਕਰਨ ਦੌਰਾਨ" -#: daemon/gdm-server.c:537 +#: daemon/gdm-server.c:532 #, c-format msgid "%s: Server priority couldn’t be set to %d: %s" msgstr "%s: ਸਰਵਰ ਤਰਜੀਹ %d ਸੈੱਟ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ: %s" -#: daemon/gdm-server.c:689 +#: daemon/gdm-server.c:684 #, c-format msgid "%s: Empty server command for display %s" msgstr "%s: %s ਡਿਸਪਲੇਅ ਲਈ ਖਾਲੀ ਸਰਵਰ ਕਮਾਂਡ" @@ -185,27 +177,20 @@ msgid "The display device" msgstr "ਡਿਸਪਲੇਅ ਡਿਵਾਈਸ" -#: daemon/gdm-session.c:1285 +#: daemon/gdm-session.c:1336 msgid "Could not create authentication helper process" msgstr "ਪਰਮਾਣਕਿਤਾ ਮਦਦਗਾਰ ਕਾਰਵਾਈ ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕੀ" -#: daemon/gdm-session-worker.c:750 +#: daemon/gdm-session-worker.c:741 msgid "" "You reached the maximum password authentication attempts, please try another " "method" msgstr "" "ਤੁਸੀਂ ਪਾਸਵਰਡ ਨਾਲ ਪਰਮਾਣਿਤ ਹੋਣ ਦੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ ਲਈ ਵੱਧ ਤੋਂ ਵੱਧ ਹੱਦਾਂ ਪੂਰੀਆਂ ਕਰ" -" ਚੁੱਕੇ ਹੋ। ਹੋਰ ਢੰਗ ਵਰਤ ਕੇ ਵੇਖੋ" +" ਚੁੱਕੇ ਹੋ। ਹੋਰ ਢੰਗ ਵਰਤ ਕੇ " +"ਵੇਖੋ" -#: daemon/gdm-session-worker.c:753 -msgid "" -"You reached the maximum PIN authentication attempts, please try another " -"method" -msgstr "" -"ਤੁਸੀਂ ਪਿੰਨ ਨਾਲ ਪਰਮਾਣਿਤ ਹੋਣ ਦੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ ਲਈ ਵੱਧ ਤੋਂ ਵੱਧ ਹੱਦਾਂ ਪੂਰੀਆਂ ਕਰ ਚੁੱਕੇ" -" ਹੋ। ਹੋਰ ਢੰਗ ਵਰਤ ਕੇ ਵੇਖੋ" - -#: daemon/gdm-session-worker.c:756 +#: daemon/gdm-session-worker.c:744 msgid "" "You reached the maximum auto login attempts, please try another " "authentication method" @@ -213,7 +198,7 @@ "ਤੁਸੀਂ ਆਟੋ ਲਾਗਇਨ ਹੋਣ ਦੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ ਲਈ ਵੱਧ ਤੋਂ ਵੱਧ ਹੱਦਾਂ ਪੂਰੀਆਂ ਕਰ ਚੁੱਕੇ ਹੋ। ਹੋਰ" " ਢੰਗ ਵਰਤ ਕੇ ਵੇਖੋ" -#: daemon/gdm-session-worker.c:759 +#: daemon/gdm-session-worker.c:747 msgid "" "You reached the maximum fingerprint authentication attempts, please try " "another method" @@ -221,67 +206,59 @@ "ਤੁਸੀਂ ਫਿੰਗਰਪਰਿੰਟ ਪਰਮਾਣਿਤ ਹੋਣ ਦੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ ਲਈ ਵੱਧ ਤੋਂ ਵੱਧ ਹੱਦਾਂ ਪੂਰੀਆਂ ਕਰ" " ਚੁੱਕੇ ਹੋ। ਹੋਰ ਢੰਗ ਵਰਤ ਕੇ ਵੇਖੋ" -#: daemon/gdm-session-worker.c:762 +#: daemon/gdm-session-worker.c:750 msgid "" "You reached the maximum smart card authentication attempts, please try " "another method" msgstr "" "ਤੁਸੀਂ ਸਮਾਰਟ ਕਾਰਡ ਨਾਲ ਪਰਮਾਣਿਤ ਹੋਣ ਦੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ ਲਈ ਵੱਧ ਤੋਂ ਵੱਧ ਹੱਦਾਂ ਪੂਰੀਆਂ ਕਰ" -" ਚੁੱਕੇ ਹੋ। ਹੋਰ ਢੰਗ ਵਰਤ ਕੇ ਵੇਖੋ" +" ਚੁੱਕੇ ਹੋ। ਹੋਰ ਢੰਗ " +"ਵਰਤ ਕੇ ਵੇਖੋ" -#: daemon/gdm-session-worker.c:764 +#: daemon/gdm-session-worker.c:752 msgid "" "You reached the maximum authentication attempts, please try another method" msgstr "" "ਤੁਸੀਂ ਪਰਮਾਣਿਤ ਹੋਣ ਦੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ ਲਈ ਵੱਧ ਤੋਂ ਵੱਧ ਹੱਦਾਂ ਪੂਰੀਆਂ ਕਰ ਚੁੱਕੇ ਹੋ। ਹੋਰ" " ਢੰਗ ਵਰਤ ਕੇ ਵੇਖੋ" -#: daemon/gdm-session-worker.c:771 -#| msgid "Sorry, that didn’t work. Please try again." +#: daemon/gdm-session-worker.c:759 msgid "Sorry, password authentication didn’t work. Please try again." msgstr "ਅਫਸੋਸ, ਪਾਸਵਰਡ ਪਰਮਾਣਕਿਤਾ ਕੰਮ ਨਹੀਂ ਕਰਦੀ ਹੈ। ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।" -#: daemon/gdm-session-worker.c:774 -#| msgid "Sorry, that didn’t work. Please try again." -msgid "Sorry, PIN authentication didn’t work. Please try again." -msgstr "ਅਫਸੋਸ, ਪਿੰਨ ਪਰਮਾਣਕਿਤਾ ਕੰਮ ਨਹੀਂ ਕਰਦੀ ਹੈ। ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।" - -#: daemon/gdm-session-worker.c:777 -#| msgid "Sorry, that didn’t work. Please try again." +#: daemon/gdm-session-worker.c:762 msgid "Sorry, auto login didn’t work. Please try again." msgstr "ਅਫਸੋਸ, ਆਟੋ ਲਾਗਇਨ ਕੰਮ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।" -#: daemon/gdm-session-worker.c:780 -#| msgid "Sorry, that didn’t work. Please try again." +#: daemon/gdm-session-worker.c:765 msgid "Sorry, fingerprint authentication didn’t work. Please try again." msgstr "ਅਫਸੋਸ, ਫਿੰਗਰਪਰਿੰਟ ਪਰਮਾਣਕਿਤਾ ਕੰਮ ਨਹੀਂ ਕਰਦੀ ਹੈ। ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।" -#: daemon/gdm-session-worker.c:783 -#| msgid "Sorry, that didn’t work. Please try again." +#: daemon/gdm-session-worker.c:768 msgid "Sorry, smart card authentication didn’t work. Please try again." msgstr "ਅਫਸੋਸ, ਸਮਾਰਟ ਕਾਰਡ ਪਰਮਾਣਕਿਤਾ ਕੰਮ ਨਹੀਂ ਕਰਦੀ ਹੈ। ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।" -#: daemon/gdm-session-worker.c:785 +#: daemon/gdm-session-worker.c:770 msgid "Sorry, that didn’t work. Please try again." msgstr "ਅਫਸੋਸ, ਉਹ ਕੰਮ ਨਹੀਂ ਕਰਦਾ। ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।" -#: daemon/gdm-session-worker.c:800 +#: daemon/gdm-session-worker.c:785 msgid "Your account was given a time limit that’s now passed." msgstr "ਤੁਹਾਡੇ ਖਾਤੇ ਲਈ ਸਮਾਂ ਸੀਮਾ ਦਿੱਤੀ ਸੀ, ਜੋ ਹੁਣ ਲੰਘ ਗਈ ਹੈ।" -#: daemon/gdm-session-worker.c:1202 +#: daemon/gdm-session-worker.c:1186 msgid "Username:" msgstr "ਵਰਤੋਂਕਾਰ ਨਾਂ:" -#: daemon/gdm-session-worker.c:1704 daemon/gdm-session-worker.c:1721 +#: daemon/gdm-session-worker.c:1585 daemon/gdm-session-worker.c:1602 msgid "no user account available" msgstr "ਹਾਲੇ ਕੋਈ ਖਾਤਾ ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ" -#: daemon/gdm-session-worker.c:1748 +#: daemon/gdm-session-worker.c:1629 msgid "Unable to change to user" msgstr "ਵਰਤੋਂਕਾਰ ਬਦਲਣ ਲਈ ਅਸਮਰੱਥ" -#: daemon/gdm-wayland-session.c:511 +#: daemon/gdm-wayland-session.c:531 msgid "GNOME Display Manager Wayland Session Launcher" msgstr "ਗਨੋਮ ਡਿਸਪਲੇਅ ਮੈਨੇਜਰ ਵੇਲੈਂਡ ਸ਼ੈਸ਼ਨ ਲਾਂਚਰ" @@ -289,15 +266,15 @@ msgid "Could not create socket!" msgstr "ਸਾਕਟ ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕੀ!" -#: daemon/gdm-x-session.c:859 +#: daemon/gdm-x-session.c:879 msgid "Run program through /etc/gdm/Xsession wrapper script" msgstr "/etc/gdm/Xsession ਰੇਪਰ ਸਕ੍ਰਿਪਟ ਰਾਹੀਂ ਪ੍ਰੋਗਰਾਮ ਚਲਾਓ" -#: daemon/gdm-x-session.c:860 +#: daemon/gdm-x-session.c:880 msgid "Listen on TCP socket" msgstr "TCP ਸਾਕਟ ਉੱਤੇ ਸੁਣੋ" -#: daemon/gdm-x-session.c:872 +#: daemon/gdm-x-session.c:892 msgid "GNOME Display Manager X Session Launcher" msgstr "ਗਨੋਮ ਡਿਸਪਲੇਅ ਮੈਨੇਜਰ X ਸ਼ੈਸ਼ਨ ਵਰਕਰ" @@ -334,30 +311,30 @@ msgid "The GDM group should not be root. Aborting!" msgstr "GDM ਗਰੁੱਪ root ਨਹੀਂ ਹੋ ਸਕਦਾ ਹੈ। ਅਧੂਰਾ ਛੱਡਿਆ ਜਾ ਰਿਹਾ ਹੈ!" -#: daemon/main.c:317 +#: daemon/main.c:309 msgid "Make all warnings fatal" msgstr "ਸਭ ਚੇਤਾਵਨੀਆਂ ਘਾਤਕ ਬਣਾਓ" -#: daemon/main.c:318 +#: daemon/main.c:310 msgid "Exit after a time (for debugging)" msgstr "ਟਾਈਮ ਬਾਅਦ ਬੰਦ ਕਰੋ (ਡੀਬੱਗ ਲਈ)" -#: daemon/main.c:319 +#: daemon/main.c:311 msgid "Print GDM version" msgstr "GDM ਵਰਜ਼ਨ ਦਿਓ" -#: daemon/main.c:330 +#: daemon/main.c:322 msgid "GNOME Display Manager" msgstr "ਗਨੋਮ ਡੈਸਕਟਾਪ ਮੈਨੇਜਰ" #. make sure the pid file doesn't get wiped -#: daemon/main.c:350 +#: daemon/main.c:342 msgid "Only the root user can run GDM" msgstr "ਕੇਵਲ ਪ੍ਰਬੰਧਕ (root) ਹੀ GDM ਚਲਾ ਸਕਦਾ ਹੈ" #. Translators: worker is a helper process that does the work #. of starting up a session -#: daemon/session-worker-main.c:119 +#: daemon/session-worker-main.c:127 msgid "GNOME Display Manager Session Worker" msgstr "ਗਨੋਮ ਡਿਸਪਲੇਅ ਮੈਨੇਜਰ ਸ਼ੈਸ਼ਨ ਵਰਕਰ" @@ -474,14 +451,6 @@ " ਰੱਦ ਕੀਤਾ " "ਜਾਵੇ ਅਤੇ ਵਰਤੋਂਕਾਰ ਚੋਣ ਉੱਤੇ ਵਾਪਿਸ ਭੇਜਿਆ ਜਾਵੇ।" -#: libgdm/gdm-user-switching.c:59 -msgid "Unable to create transient display: " -msgstr "ਆਰਜ਼ੀ ਡਿਸਪਲੇਅ ਬਣਾਉਣ ਲਈ ਅਸਮਰੱਥ:" - -#: libgdm/gdm-user-switching.c:90 -msgid "Unable to activate session: " -msgstr "ਸ਼ੈਸ਼ਨ ਸਰਗਰਮ ਕਰਨ ਲਈ ਅਸਮਰੱਥ: " - #: utils/gdmflexiserver.c:45 msgid "Only the VERSION command is supported" msgstr "ਕੇਵਲ VERSION ਕਮਾਂਡ ਹੀ ਸਹਾਇਕ ਹੈ" @@ -517,6 +486,30 @@ msgid "Take a picture of the screen" msgstr "ਸਕਰੀਨ ਦੀ ਤਸਵੀਰ ਲਵੋ" +#~ msgid "" +#~ "The system is unable to determine whether to switch to an existing login " +#~ "screen or start up a new login screen." +#~ msgstr "" +#~ "ਸਿਸਟਮ ਪਤਾ ਕਰਨ ਲਈ ਅਸਮਰੱਥ ਹੈ ਕਿ ਮੌਜੂਦਾ ਲਾਗਇਨ ਸਕਰੀਨ ਲਈ ਬਦਲਿਆ ਜਾਵੇ ਜਾਂ ਨਵੀਂ ਲਾਗਇਨ " +#~ "ਸਕਰੀਨ ਸ਼ੁਰੂ ਕੀਤੀ ਜਾਵੇ।" + +#~ msgid "The system is unable to start up a new login screen." +#~ msgstr "ਸਿਸਤਮ ਨਵੀਂ ਲਾਗਇਨ ਸਕਰੀਨ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਅਸਮਰੱਥ ਹੈ।" + +#~ msgid "" +#~ "You reached the maximum PIN authentication attempts, please try another " +#~ "method" +#~ msgstr "" +#~ "ਤੁਸੀਂ ਪਿੰਨ ਨਾਲ ਪਰਮਾਣਿਤ ਹੋਣ ਦੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ ਲਈ ਵੱਧ ਤੋਂ ਵੱਧ ਹੱਦਾਂ ਪੂਰੀਆਂ ਕਰ ਚੁੱਕੇ ਹੋ। ਹੋਰ ਢੰਗ ਵਰਤ ਕੇ " +#~ "ਵੇਖੋ" + +#~| msgid "Sorry, that didn’t work. Please try again." +#~ msgid "Sorry, PIN authentication didn’t work. Please try again." +#~ msgstr "ਅਫਸੋਸ, ਪਿੰਨ ਪਰਮਾਣਕਿਤਾ ਕੰਮ ਨਹੀਂ ਕਰਦੀ ਹੈ। ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।" + +#~ msgid "Unable to activate session: " +#~ msgstr "ਸ਼ੈਸ਼ਨ ਸਰਗਰਮ ਕਰਨ ਲਈ ਅਸਮਰੱਥ: " + #~ msgid "Your password has expired, please change it now." #~ msgstr "ਤੁਹਾਡੇ ਪਾਸਵਰਡ ਦੀ ਮਿਆਦ ਪੁੱਗੀ, ਇਸ ਨੂੰ ਹੁਣ ਬਦਲੋ ਜੀ।" diff -Nru gdm3-44.1/po/ro.po gdm3-45~beta/po/ro.po --- gdm3-44.1/po/ro.po 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/po/ro.po 2023-08-29 16:11:10.000000000 +0000 @@ -10,9 +10,10 @@ msgstr "" "Project-Id-Version: gdm\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gdm/issues\n" -"POT-Creation-Date: 2020-12-21 15:54+0000\n" -"PO-Revision-Date: 2020-12-22 11:09+0200\n" -"Last-Translator: Florentina Mușat \n" +"POT-Creation-Date: 2023-06-28 18:12+0000\n" +"PO-Revision-Date: 2023-07-29 13:46+0300\n" +"Last-Translator: Florentina Mușat \n" "Language-Team: Gnome Romanian Translation Team\n" "Language: ro\n" "MIME-Version: 1.0\n" @@ -20,7 +21,7 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2);;\n" -"X-Generator: Poedit 2.4.2\n" +"X-Generator: Poedit 3.3.2\n" "X-Project-Style: gnome\n" #: chooser/gdm-host-chooser-dialog.c:139 @@ -59,32 +60,25 @@ msgid "/dev/urandom is not a character device" msgstr "/dev/urandom nu este un dispozitiv de semne grafice" -#: common/gdm-common.c:501 libgdm/gdm-user-switching.c:207 +# Nu e un „monitor” în sine, ci un obiect afișaj al X11 care e creat temporar după ce utilizatorul iese din sesiunea lui, până înainte de a intra în a altuia. +#: common/gdm-common.c:346 +msgid "Unable to create transient display: " +msgstr "Nu s-a putut porni afișajul temporar: " + +#: common/gdm-common.c:511 msgid "Could not identify the current session: " msgstr "Nu s-a putut identifica sesiunea curentă: " -#: common/gdm-common.c:510 libgdm/gdm-user-switching.c:216 +#: common/gdm-common.c:520 msgid "Could not identify the current seat." msgstr "Sesiunea actuală nu a putut fi identificată." -#: common/gdm-common.c:520 libgdm/gdm-user-switching.c:226 -msgid "" -"The system is unable to determine whether to switch to an existing login " -"screen or start up a new login screen." -msgstr "" -"Sistemul nu poate determina dacă să comute la un ecran de autentificare " -"existent sau să pornească unul nou." - -#: common/gdm-common.c:528 libgdm/gdm-user-switching.c:234 -msgid "The system is unable to start up a new login screen." -msgstr "Sistemul nu poate porni un ecran de autentificare nou." - -#: daemon/gdm-display-access-file.c:298 +#: daemon/gdm-display-access-file.c:278 daemon/gdm-display-access-file.c:299 #, c-format -msgid "could not find user “%s” on system" -msgstr "utilizatorul „%s” nu a putut fi găsit în sistem" +msgid "Could not find user “%s” on system" +msgstr "Utilizatorul „%s” nu a putut fi găsit în sistem" -#: daemon/gdm-legacy-display.c:236 +#: daemon/gdm-legacy-display.c:226 msgid "" "Could not start the X server (your graphical environment) due to an internal " "error. Please contact your system administrator or check your syslog to " @@ -96,66 +90,66 @@ "pentru diagnoză. Între timp acest afișaj va fi dezactivat. Reporniți GDM " "când problema este corectată." -#: daemon/gdm-manager.c:764 +#: daemon/gdm-manager.c:769 msgid "No display available" msgstr "Niciun afișaj disponibil" -#: daemon/gdm-manager.c:862 daemon/gdm-manager.c:1146 +#: daemon/gdm-manager.c:867 daemon/gdm-manager.c:1151 msgid "No session available" msgstr "Nicio sesiune disponibilă" -#: daemon/gdm-manager.c:881 +#: daemon/gdm-manager.c:886 msgid "Chooser session unavailable" msgstr "Comutatorul de sesiune este indisponibil" -#: daemon/gdm-manager.c:897 +#: daemon/gdm-manager.c:902 msgid "Can only be called before user is logged in" msgstr "Poate fi executat doar înainte ca utilizatorul să fie autentificat" -#: daemon/gdm-manager.c:908 +#: daemon/gdm-manager.c:913 msgid "Caller not GDM" msgstr "Apelantul nu este GDM" -#: daemon/gdm-manager.c:918 +#: daemon/gdm-manager.c:923 msgid "Unable to open private communication channel" msgstr "Nu s-a putut deschide un canal de comunicare privat" -#: daemon/gdm-server.c:383 +#: daemon/gdm-server.c:384 #, c-format msgid "Server was to be spawned by user %s but that user doesn’t exist" msgstr "Serverul trebuia pornit de utilizatorul %s, dar acesta nu există" -#: daemon/gdm-server.c:394 daemon/gdm-server.c:414 +#: daemon/gdm-server.c:395 daemon/gdm-server.c:415 #, c-format msgid "Couldn’t set groupid to %d" msgstr "Nu s-a putut stabili groupid la %d" -#: daemon/gdm-server.c:400 +#: daemon/gdm-server.c:401 #, c-format msgid "initgroups () failed for %s" msgstr "initgroups () a eșuat pentru %s" -#: daemon/gdm-server.c:406 +#: daemon/gdm-server.c:407 #, c-format msgid "Couldn’t set userid to %d" msgstr "Nu s-a putut stabili userid la %d" -#: daemon/gdm-server.c:484 +#: daemon/gdm-server.c:479 #, c-format msgid "%s: Could not open log file for display %s!" msgstr "%s: Nu s-a putut deschide fișierul jurnal pentru afișajul %s!" -#: daemon/gdm-server.c:505 daemon/gdm-server.c:511 daemon/gdm-server.c:517 +#: daemon/gdm-server.c:500 daemon/gdm-server.c:506 daemon/gdm-server.c:512 #, c-format msgid "%s: Error setting %s to %s" msgstr "%s: Eroare în stabilirea a „%s” ca fiind %s" -#: daemon/gdm-server.c:537 +#: daemon/gdm-server.c:532 #, c-format msgid "%s: Server priority couldn’t be set to %d: %s" msgstr "%s: Prioritatea serverului nu a putut fi stabilită ca fiind %d: %s" -#: daemon/gdm-server.c:689 +#: daemon/gdm-server.c:684 #, c-format msgid "%s: Empty server command for display %s" msgstr "%s: Comandă de server nulă pentru afișajul %s" @@ -184,11 +178,11 @@ msgid "The display device" msgstr "Dispozitivul de tip afișaj" -#: daemon/gdm-session.c:1285 +#: daemon/gdm-session.c:1336 msgid "Could not create authentication helper process" msgstr "Nu s-a putut crea procesul ajutător de autentificare" -#: daemon/gdm-session-worker.c:750 +#: daemon/gdm-session-worker.c:741 msgid "" "You reached the maximum password authentication attempts, please try another " "method" @@ -196,15 +190,7 @@ "Ați atins numărul maxim de încercări de autentificare prin parolă, încercați " "o altă metodă" -#: daemon/gdm-session-worker.c:753 -msgid "" -"You reached the maximum PIN authentication attempts, please try another " -"method" -msgstr "" -"Ați atins numărul maxim de încercări de autentificare prin PIN, încercați o " -"altă metodă" - -#: daemon/gdm-session-worker.c:756 +#: daemon/gdm-session-worker.c:744 msgid "" "You reached the maximum auto login attempts, please try another " "authentication method" @@ -212,7 +198,7 @@ "Ați atins numărul maxim de încercări de autentificare automată, încercați o " "altă metodă de autentificare" -#: daemon/gdm-session-worker.c:759 +#: daemon/gdm-session-worker.c:747 msgid "" "You reached the maximum fingerprint authentication attempts, please try " "another method" @@ -220,7 +206,7 @@ "Ați atins numărul maxim de încercări de autentificare prin amprentă, " "încercați o altă metodă" -#: daemon/gdm-session-worker.c:762 +#: daemon/gdm-session-worker.c:750 msgid "" "You reached the maximum smart card authentication attempts, please try " "another method" @@ -228,54 +214,50 @@ "Ați atins numărul maxim de încercări de autentificare prin card smart, " "încercați o altă metodă" -#: daemon/gdm-session-worker.c:764 +#: daemon/gdm-session-worker.c:752 msgid "" "You reached the maximum authentication attempts, please try another method" msgstr "" "Ați atins numărul maxim de încercări de autentificare, încercați o altă " "metodă" -#: daemon/gdm-session-worker.c:771 +#: daemon/gdm-session-worker.c:759 msgid "Sorry, password authentication didn’t work. Please try again." msgstr "Autentificarea prin parolă nu a reușit. Încercați din nou." -#: daemon/gdm-session-worker.c:774 -msgid "Sorry, PIN authentication didn’t work. Please try again." -msgstr "Autentificarea prin PIN nu a reușit. Încercați din nou." - -#: daemon/gdm-session-worker.c:777 +#: daemon/gdm-session-worker.c:762 msgid "Sorry, auto login didn’t work. Please try again." msgstr "Autentificarea automată nu a reușit. Încercați din nou." -#: daemon/gdm-session-worker.c:780 +#: daemon/gdm-session-worker.c:765 msgid "Sorry, fingerprint authentication didn’t work. Please try again." msgstr "Autentificarea prin amprentă nu a reușit. Încercați din nou." -#: daemon/gdm-session-worker.c:783 +#: daemon/gdm-session-worker.c:768 msgid "Sorry, smart card authentication didn’t work. Please try again." msgstr "Autentificarea prin card smart nu a reușit. Încercați din nou." -#: daemon/gdm-session-worker.c:785 +#: daemon/gdm-session-worker.c:770 msgid "Sorry, that didn’t work. Please try again." msgstr "Nu a funcționat. Încercați din nou." -#: daemon/gdm-session-worker.c:800 +#: daemon/gdm-session-worker.c:785 msgid "Your account was given a time limit that’s now passed." msgstr "Contul dumneavoastră a primit o limită de timp care acum a expirat." -#: daemon/gdm-session-worker.c:1202 +#: daemon/gdm-session-worker.c:1186 msgid "Username:" msgstr "Nume de utilizator:" -#: daemon/gdm-session-worker.c:1704 daemon/gdm-session-worker.c:1721 +#: daemon/gdm-session-worker.c:1585 daemon/gdm-session-worker.c:1602 msgid "no user account available" msgstr "niciun cont de utilizator disponibil" -#: daemon/gdm-session-worker.c:1748 +#: daemon/gdm-session-worker.c:1629 msgid "Unable to change to user" msgstr "Nu se poate schimba utilizatorul" -#: daemon/gdm-wayland-session.c:511 +#: daemon/gdm-wayland-session.c:531 msgid "GNOME Display Manager Wayland Session Launcher" msgstr "Administratorul de afișaje GNOME - Lansatorul de sesiune Wayland" @@ -283,15 +265,15 @@ msgid "Could not create socket!" msgstr "Nu s-a putut crea un socket!" -#: daemon/gdm-x-session.c:859 +#: daemon/gdm-x-session.c:879 msgid "Run program through /etc/gdm/Xsession wrapper script" msgstr "Rulați programul prin scriptul încadrator /etc/gdm/Xsession" -#: daemon/gdm-x-session.c:860 +#: daemon/gdm-x-session.c:880 msgid "Listen on TCP socket" msgstr "Ascultă la soclul TCP" -#: daemon/gdm-x-session.c:872 +#: daemon/gdm-x-session.c:892 msgid "GNOME Display Manager X Session Launcher" msgstr "Administratorul de afișaje GNOME - Lansatorul de sesiune X" @@ -330,30 +312,30 @@ msgid "The GDM group should not be root. Aborting!" msgstr "Grupul GDM nu trebuie să fie root. Se renunță!" -#: daemon/main.c:317 +#: daemon/main.c:309 msgid "Make all warnings fatal" msgstr "Consideră orice eroare ca fiind fatală" -#: daemon/main.c:318 +#: daemon/main.c:310 msgid "Exit after a time (for debugging)" msgstr "Ieși după un anumit timp (pentru depanare)" -#: daemon/main.c:319 +#: daemon/main.c:311 msgid "Print GDM version" msgstr "Arată versiunea GDM" -#: daemon/main.c:330 +#: daemon/main.c:322 msgid "GNOME Display Manager" msgstr "Administrator afișaje GNOME" #. make sure the pid file doesn't get wiped -#: daemon/main.c:350 +#: daemon/main.c:342 msgid "Only the root user can run GDM" msgstr "Doar administratorul (root) poate porni GDM" #. Translators: worker is a helper process that does the work #. of starting up a session -#: daemon/session-worker-main.c:119 +#: daemon/session-worker-main.c:127 msgid "GNOME Display Manager Session Worker" msgstr "Proces ajutător al sesiunii administratorului de afișaje GNOME" @@ -466,15 +448,6 @@ "De câte ori unui utilizator îi este permis să încerce autentificarea înainte " "de a reveni la selecția utilizatorilor." -# Nu e un „monitor” în sine, ci un obiect afișaj al X11 care e creat temporar după ce utilizatorul iese din sesiunea lui, până înainte de a intra în a altuia. -#: libgdm/gdm-user-switching.c:59 -msgid "Unable to create transient display: " -msgstr "Nu s-a putut porni afișajul temporar: " - -#: libgdm/gdm-user-switching.c:90 -msgid "Unable to activate session: " -msgstr "Nu s-a putut deschide sesiunea: " - #: utils/gdmflexiserver.c:45 msgid "Only the VERSION command is supported" msgstr "Doar comanda VERSION este suportată" @@ -510,6 +483,29 @@ msgid "Take a picture of the screen" msgstr "Capturează imaginea ecranului" +#~ msgid "" +#~ "The system is unable to determine whether to switch to an existing login " +#~ "screen or start up a new login screen." +#~ msgstr "" +#~ "Sistemul nu poate determina dacă să comute la un ecran de autentificare " +#~ "existent sau să pornească unul nou." + +#~ msgid "The system is unable to start up a new login screen." +#~ msgstr "Sistemul nu poate porni un ecran de autentificare nou." + +#~ msgid "" +#~ "You reached the maximum PIN authentication attempts, please try another " +#~ "method" +#~ msgstr "" +#~ "Ați atins numărul maxim de încercări de autentificare prin PIN, încercați " +#~ "o altă metodă" + +#~ msgid "Sorry, PIN authentication didn’t work. Please try again." +#~ msgstr "Autentificarea prin PIN nu a reușit. Încercați din nou." + +#~ msgid "Unable to activate session: " +#~ msgstr "Nu s-a putut deschide sesiunea: " + #~ msgid "Your password has expired, please change it now." #~ msgstr "Parola dumneavoastră a expirat, schimbați-o acum." diff -Nru gdm3-44.1/po/tr.po gdm3-45~beta/po/tr.po --- gdm3-44.1/po/tr.po 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/po/tr.po 2023-08-29 16:11:10.000000000 +0000 @@ -19,10 +19,10 @@ msgstr "" "Project-Id-Version: GDM\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gdm/issues\n" -"POT-Creation-Date: 2023-01-25 17:25+0000\n" +"POT-Creation-Date: 2023-06-28 18:12+0000\n" "PO-Revision-Date: 2023-03-06 20:10+0300\n" "Last-Translator: Sabri Ünal \n" -"Language-Team: Türkçe \n" +"Language-Team: Türkçe \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -66,20 +66,24 @@ msgid "/dev/urandom is not a character device" msgstr "/dev/urandom bir karakter aygıtı değil" -#: common/gdm-common.c:507 libgdm/gdm-user-switching.c:207 +#: common/gdm-common.c:346 +msgid "Unable to create transient display: " +msgstr "Geçici ekran oluşturulamadı: " + +#: common/gdm-common.c:511 msgid "Could not identify the current session: " msgstr "Geçerli oturum saptanamadı: " -#: common/gdm-common.c:516 libgdm/gdm-user-switching.c:216 +#: common/gdm-common.c:520 msgid "Could not identify the current seat." msgstr "Geçerli oturak saptanamadı." -#: daemon/gdm-display-access-file.c:285 daemon/gdm-display-access-file.c:306 +#: daemon/gdm-display-access-file.c:278 daemon/gdm-display-access-file.c:299 #, c-format msgid "Could not find user “%s” on system" msgstr "Sistemde “%s” kullanıcısı bulunamadı" -#: daemon/gdm-legacy-display.c:236 +#: daemon/gdm-legacy-display.c:226 msgid "" "Could not start the X server (your graphical environment) due to an internal " "error. Please contact your system administrator or check your syslog to " @@ -135,22 +139,22 @@ msgid "Couldn’t set userid to %d" msgstr "userid, %d olarak değiştirilemedi" -#: daemon/gdm-server.c:485 +#: daemon/gdm-server.c:479 #, c-format msgid "%s: Could not open log file for display %s!" msgstr "%s: %s ekranı için günlük dosyası açılamadı!" -#: daemon/gdm-server.c:506 daemon/gdm-server.c:512 daemon/gdm-server.c:518 +#: daemon/gdm-server.c:500 daemon/gdm-server.c:506 daemon/gdm-server.c:512 #, c-format msgid "%s: Error setting %s to %s" msgstr "%s: %s ayarı %s olarak atarken hata" -#: daemon/gdm-server.c:538 +#: daemon/gdm-server.c:532 #, c-format msgid "%s: Server priority couldn’t be set to %d: %s" msgstr "%s: Sunucu önceliği %d olarak atanamadı: %s" -#: daemon/gdm-server.c:690 +#: daemon/gdm-server.c:684 #, c-format msgid "%s: Empty server command for display %s" msgstr "%s: %s ekranı için boş sunucu komutu" @@ -183,14 +187,14 @@ msgid "Could not create authentication helper process" msgstr "Kimlik doğrulama yardımcı süreci oluşturulamadı" -#: daemon/gdm-session-worker.c:752 +#: daemon/gdm-session-worker.c:741 msgid "" "You reached the maximum password authentication attempts, please try another " "method" msgstr "" "Azami parola kimlik doğrulama girişimini aştınız, lütfen başka yöntem deneyin" -#: daemon/gdm-session-worker.c:755 +#: daemon/gdm-session-worker.c:744 msgid "" "You reached the maximum auto login attempts, please try another " "authentication method" @@ -198,7 +202,7 @@ "Azami kendiliğinden oturum açma girişimini aştınız, lütfen başka kimlik " "doğrulama yöntemi deneyin" -#: daemon/gdm-session-worker.c:758 +#: daemon/gdm-session-worker.c:747 msgid "" "You reached the maximum fingerprint authentication attempts, please try " "another method" @@ -206,7 +210,7 @@ "Azami parmak izi kimlik doğrulama girişimini aştınız, lütfen başka yöntem " "deneyin" -#: daemon/gdm-session-worker.c:761 +#: daemon/gdm-session-worker.c:750 msgid "" "You reached the maximum smart card authentication attempts, please try " "another method" @@ -214,48 +218,48 @@ "Azami akıllı kart kimlik doğrulama girişimini aştınız, lütfen başka yöntem " "deneyin" -#: daemon/gdm-session-worker.c:763 +#: daemon/gdm-session-worker.c:752 msgid "" "You reached the maximum authentication attempts, please try another method" msgstr "Azami kimlik doğrulama girişimini aştınız, lütfen başka yöntem deneyin" -#: daemon/gdm-session-worker.c:770 +#: daemon/gdm-session-worker.c:759 msgid "Sorry, password authentication didn’t work. Please try again." msgstr "" "Üzgünüm, parola kimlik doğrulaması işe yaramadı. Lütfen yeniden deneyin." -#: daemon/gdm-session-worker.c:773 +#: daemon/gdm-session-worker.c:762 msgid "Sorry, auto login didn’t work. Please try again." msgstr "" "Üzgünüm, kendiliğinden oturum açma işe yaramadı. Lütfen yeniden deneyin." -#: daemon/gdm-session-worker.c:776 +#: daemon/gdm-session-worker.c:765 msgid "Sorry, fingerprint authentication didn’t work. Please try again." msgstr "" "Üzgünüm, parmak izi kimlik doğrulaması işe yaramadı. Lütfen yeniden deneyin." -#: daemon/gdm-session-worker.c:779 +#: daemon/gdm-session-worker.c:768 msgid "Sorry, smart card authentication didn’t work. Please try again." msgstr "" "Üzgünüm, akıllı kart kimlik doğrulaması işe yaramadı. Lütfen yeniden deneyin." -#: daemon/gdm-session-worker.c:781 +#: daemon/gdm-session-worker.c:770 msgid "Sorry, that didn’t work. Please try again." msgstr "Üzgünüm ama işe yaramadı. Lütfen yeniden deneyin." -#: daemon/gdm-session-worker.c:796 +#: daemon/gdm-session-worker.c:785 msgid "Your account was given a time limit that’s now passed." msgstr "Hesabınıza şu anda süresi dolan bir zaman sınırı verilmiş." -#: daemon/gdm-session-worker.c:1197 +#: daemon/gdm-session-worker.c:1186 msgid "Username:" msgstr "Kullanıcı adı:" -#: daemon/gdm-session-worker.c:1597 daemon/gdm-session-worker.c:1614 +#: daemon/gdm-session-worker.c:1585 daemon/gdm-session-worker.c:1602 msgid "no user account available" msgstr "hiçbir kullanıcı hesabı yok" -#: daemon/gdm-session-worker.c:1641 +#: daemon/gdm-session-worker.c:1629 msgid "Unable to change to user" msgstr "Kullanıcıya değiştirilemiyor" @@ -335,7 +339,7 @@ #. Translators: worker is a helper process that does the work #. of starting up a session -#: daemon/session-worker-main.c:119 +#: daemon/session-worker-main.c:127 msgid "GNOME Display Manager Session Worker" msgstr "GNOME Görüntü Yöneticisi Oturum Çalıştırıcısı" @@ -449,14 +453,6 @@ "Kullanıcı seçimine yeniden dönülmeden önce kullanıcılara izin verilecek " "kimlik doğrulama denemesi sayısı." -#: libgdm/gdm-user-switching.c:59 -msgid "Unable to create transient display: " -msgstr "Geçici ekran oluşturulamadı: " - -#: libgdm/gdm-user-switching.c:90 -msgid "Unable to activate session: " -msgstr "Oturum etkinleştirilemedi: " - #: utils/gdmflexiserver.c:45 msgid "Only the VERSION command is supported" msgstr "Yalnızca VERSION (sürüm) komutu destekleniyor" @@ -468,7 +464,7 @@ #: utils/gdmflexiserver.c:46 utils/gdmflexiserver.c:47 #: utils/gdmflexiserver.c:49 utils/gdmflexiserver.c:50 msgid "Ignored — retained for compatibility" -msgstr "Yok Sayılıyor - uyum için korunmuştur" +msgstr "Yok Sayılıyor - uyum için korunmuştur" #: utils/gdmflexiserver.c:48 utils/gdm-screenshot.c:43 msgid "Debugging output" @@ -491,3 +487,6 @@ #: utils/gdm-screenshot.c:279 msgid "Take a picture of the screen" msgstr "Ekranın resmini çek" + +#~ msgid "Unable to activate session: " +#~ msgstr "Oturum etkinleştirilemedi: " diff -Nru gdm3-44.1/utils/gdmflexiserver.c gdm3-45~beta/utils/gdmflexiserver.c --- gdm3-44.1/utils/gdmflexiserver.c 2023-05-05 18:12:53.000000000 +0000 +++ gdm3-45~beta/utils/gdmflexiserver.c 2023-08-29 16:11:10.000000000 +0000 @@ -168,7 +168,7 @@ } error = NULL; - res = gdm_goto_login_session (&error); + res = gdm_goto_login_session (NULL, &error); if (! res) { g_printerr ("%s", error->message); } else {