Compare commits
	
		
			No commits in common. "c8" and "c10s" have entirely different histories.
		
	
	
		
	
		
							
								
								
									
										128
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										128
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1 +1,127 @@ | |||||||
| SOURCES/gnome-session-3.28.1.tar.xz | gnome-session-2.31.2.tar.bz2 | ||||||
|  | gnome-session-2.31.6.tar.bz2 | ||||||
|  | /gnome-session-2.32.0.tar.bz2 | ||||||
|  | /gnome-session-2.91.0.tar.bz2 | ||||||
|  | /gnome-session-2.91.4.tar.bz2 | ||||||
|  | /gnome-session-2.91.6.tar.bz2 | ||||||
|  | /gnome-session-2.91.90.tar.bz2 | ||||||
|  | /gnome-session-2.91.91.tar.bz2 | ||||||
|  | /gnome-session-2.91.91.2.tar.bz2 | ||||||
|  | /gnome-session-2.91.91.3.tar.bz2 | ||||||
|  | /gnome-session-2.91.92.tar.bz2 | ||||||
|  | /gnome-session-2.91.93.tar.bz2 | ||||||
|  | /gnome-session-2.91.94.tar.bz2 | ||||||
|  | /gnome-session-3.0.0.tar.bz2 | ||||||
|  | /gnome-session-3.0.1.tar.bz2 | ||||||
|  | /gnome-session-3.1.2.tar.xz | ||||||
|  | /gnome-session-3.1.3.tar.xz | ||||||
|  | /gnome-session-3.1.91.tar.xz | ||||||
|  | /gnome-session-3.1.92.tar.xz | ||||||
|  | /gnome-session-3.2.0.tar.xz | ||||||
|  | /gnome-session-3.2.1.tar.xz | ||||||
|  | /gnome-session-3.3.1.tar.xz | ||||||
|  | /gnome-session-3.3.2.tar.xz | ||||||
|  | /gnome-session-3.3.3.tar.xz | ||||||
|  | /gnome-session-3.3.5.tar.xz | ||||||
|  | /gnome-session-3.3.90.tar.xz | ||||||
|  | /gnome-session-3.3.92.tar.xz | ||||||
|  | /gnome-session-3.4.0.tar.xz | ||||||
|  | /gnome-session-3.4.1.tar.xz | ||||||
|  | /gnome-session-3.4.2.tar.xz | ||||||
|  | /gnome-session-3.5.2.tar.xz | ||||||
|  | /gnome-session-3.5.4.tar.xz | ||||||
|  | /gnome-session-3.5.5.tar.xz | ||||||
|  | /gnome-session-3.5.91.tar.xz | ||||||
|  | /gnome-session-3.6.0.tar.xz | ||||||
|  | /gnome-session-3.6.1.tar.xz | ||||||
|  | /gnome-session-3.7.1.tar.xz | ||||||
|  | /gnome-session-3.7.2.tar.xz | ||||||
|  | /gnome-session-3.7.3.tar.xz | ||||||
|  | /gnome-session-3.7.4.tar.xz | ||||||
|  | /gnome-session-3.7.90.tar.xz | ||||||
|  | /gnome-session-3.7.91.tar.xz | ||||||
|  | /gnome-session-3.7.92.tar.xz | ||||||
|  | /gnome-session-3.8.0.tar.xz | ||||||
|  | /gnome-session-3.8.1.tar.xz | ||||||
|  | /gnome-session-3.8.2.tar.xz | ||||||
|  | /gnome-session-3.8.2.1.tar.xz | ||||||
|  | /gnome-session-3.9.5.tar.xz | ||||||
|  | /gnome-session-3.9.90.tar.xz | ||||||
|  | /gnome-session-3.9.91.tar.xz | ||||||
|  | /gnome-session-3.10.0.tar.xz | ||||||
|  | /gnome-session-3.10.1.tar.xz | ||||||
|  | /gnome-session-3.11.1.tar.xz | ||||||
|  | /gnome-session-3.11.2.tar.xz | ||||||
|  | /gnome-session-3.11.3.tar.xz | ||||||
|  | /gnome-session-3.11.4.tar.xz | ||||||
|  | /gnome-session-3.11.92.tar.xz | ||||||
|  | /gnome-session-3.12.0.tar.xz | ||||||
|  | /gnome-session-3.12.1.tar.xz | ||||||
|  | /gnome-session-3.13.3.tar.xz | ||||||
|  | /gnome-session-3.14.0.tar.xz | ||||||
|  | /gnome-session-3.15.3.tar.xz | ||||||
|  | /gnome-session-3.15.4.tar.xz | ||||||
|  | /gnome-session-3.15.90.tar.xz | ||||||
|  | /gnome-session-3.15.92.tar.xz | ||||||
|  | /gnome-session-3.16.0.tar.xz | ||||||
|  | /gnome-session-3.17.92.tar.xz | ||||||
|  | /gnome-session-3.18.0.tar.xz | ||||||
|  | /gnome-session-3.18.1.tar.xz | ||||||
|  | /gnome-session-3.18.1.1.tar.xz | ||||||
|  | /gnome-session-3.18.1.2.tar.xz | ||||||
|  | /gnome-session-3.19.2.tar.xz | ||||||
|  | /gnome-session-3.19.4.tar.xz | ||||||
|  | /gnome-session-3.19.91.tar.xz | ||||||
|  | /gnome-session-3.19.92.tar.xz | ||||||
|  | /gnome-session-3.20.0.tar.xz | ||||||
|  | /gnome-session-3.20.1.tar.xz | ||||||
|  | /gnome-session-3.21.3.tar.xz | ||||||
|  | /gnome-session-3.21.4.tar.xz | ||||||
|  | /gnome-session-3.21.90.tar.xz | ||||||
|  | /gnome-session-3.22.0.tar.xz | ||||||
|  | /gnome-session-3.23.2.tar.xz | ||||||
|  | /gnome-session-3.23.4.1.tar.xz | ||||||
|  | /gnome-session-3.23.91.tar.xz | ||||||
|  | /gnome-session-3.23.92.tar.xz | ||||||
|  | /gnome-session-3.24.0.tar.xz | ||||||
|  | /gnome-session-3.24.1.tar.xz | ||||||
|  | /gnome-session-3.25.3.tar.xz | ||||||
|  | /gnome-session-3.25.4.tar.xz | ||||||
|  | /gnome-session-3.25.90.tar.xz | ||||||
|  | /gnome-session-3.25.92.tar.xz | ||||||
|  | /gnome-session-3.26.0.tar.xz | ||||||
|  | /gnome-session-3.26.1.tar.xz | ||||||
|  | /gnome-session-3.27.4.tar.xz | ||||||
|  | /gnome-session-3.27.90.1.tar.xz | ||||||
|  | /gnome-session-3.27.91.tar.xz | ||||||
|  | /gnome-session-3.27.92.tar.xz | ||||||
|  | /gnome-session-3.28.0.tar.xz | ||||||
|  | /gnome-session-3.28.1.tar.xz | ||||||
|  | /gnome-session-3.29.90.tar.xz | ||||||
|  | /gnome-session-3.30.0.tar.xz | ||||||
|  | /gnome-session-3.30.1.tar.xz | ||||||
|  | /gnome-session-3.31.4.tar.xz | ||||||
|  | /gnome-session-3.32.0.tar.xz | ||||||
|  | /gnome-session-3.33.4.tar.xz | ||||||
|  | /gnome-session-3.33.90.tar.xz | ||||||
|  | /gnome-session-3.33.92.tar.xz | ||||||
|  | /gnome-session-3.34.0.tar.xz | ||||||
|  | /gnome-session-3.34.1.tar.xz | ||||||
|  | /gnome-session-3.34.2.tar.xz | ||||||
|  | /gnome-session-3.35.3.tar.xz | ||||||
|  | /gnome-session-3.36.0.tar.xz | ||||||
|  | /gnome-session-3.37.0.tar.xz | ||||||
|  | /gnome-session-3.38.0.tar.xz | ||||||
|  | /gnome-session-40.beta.tar.xz | ||||||
|  | /gnome-session-40.0.tar.xz | ||||||
|  | /gnome-session-40.1.tar.xz | ||||||
|  | /gnome-session-40.1.1.tar.xz | ||||||
|  | /gnome-session-41.3.tar.xz | ||||||
|  | /gnome-session-42.0.tar.xz | ||||||
|  | /gnome-session-43.0.tar.xz | ||||||
|  | /gnome-session-44.rc.tar.xz | ||||||
|  | /gnome-session-44.0.tar.xz | ||||||
|  | /gnome-session-45.0.tar.xz | ||||||
|  | /gnome-session-46.alpha.tar.xz | ||||||
|  | /gnome-session-46.rc.tar.xz | ||||||
|  | /gnome-session-46.0.tar.xz | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| From 15be30033e5b24a8c84a4d4338da0e8a3930303a Mon Sep 17 00:00:00 2001 | From e3d6f1c1d342d0c74f2125ea0efa2a9669aaa8df Mon Sep 17 00:00:00 2001 | ||||||
| From: Hans de Goede <hdegoede@redhat.com> | From: Hans de Goede <hdegoede@redhat.com> | ||||||
| Date: Tue, 14 Aug 2018 14:49:59 +0200 | Date: Tue, 14 Aug 2018 14:49:59 +0200 | ||||||
| Subject: [PATCH] Fedora: Set grub boot-flags on shutdown / reboot | Subject: [PATCH] Fedora: Set grub boot-flags on shutdown / reboot | ||||||
| @ -18,37 +18,10 @@ the boot-menu not being hidden. | |||||||
|  1 file changed, 12 insertions(+) |  1 file changed, 12 insertions(+) | ||||||
| 
 | 
 | ||||||
| diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c
 | diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c
 | ||||||
| index 3cf421cd..924767af 100644
 | index 6839a02d..589efb02 100644
 | ||||||
| --- a/gnome-session/gsm-manager.c
 | --- a/gnome-session/gsm-manager.c
 | ||||||
| +++ b/gnome-session/gsm-manager.c
 | +++ b/gnome-session/gsm-manager.c
 | ||||||
| @@ -3629,51 +3629,63 @@ on_shutdown_prepared (GsmSystem  *system,
 | @@ -3823,10 +3823,22 @@ do_query_end_session_exit (GsmManager *manager)
 | ||||||
|                        gboolean    success, |  | ||||||
|                        GsmManager *manager) |  | ||||||
|  { |  | ||||||
|          g_debug ("GsmManager: on_shutdown_prepared, success: %d", success); |  | ||||||
|          g_signal_handlers_disconnect_by_func (system, on_shutdown_prepared, manager); |  | ||||||
|   |  | ||||||
|          if (success) { |  | ||||||
|                  /* move to end-session phase */ |  | ||||||
|                  g_assert (manager->priv->phase == GSM_MANAGER_PHASE_QUERY_END_SESSION); |  | ||||||
|                  manager->priv->phase++; |  | ||||||
|                  start_phase (manager); |  | ||||||
|          } else { |  | ||||||
|                  disconnect_shell_dialog_signals (manager); |  | ||||||
|                  gsm_shell_close_end_session_dialog (manager->priv->shell); |  | ||||||
|                  /* back to running phase */ |  | ||||||
|                  cancel_end_session (manager); |  | ||||||
|          } |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  static gboolean |  | ||||||
|  do_query_end_session_exit (GsmManager *manager) |  | ||||||
|  { |  | ||||||
|          gboolean reboot = FALSE; |  | ||||||
|          gboolean shutdown = FALSE; |  | ||||||
|   |  | ||||||
|          switch (manager->priv->logout_type) { |  | ||||||
|          case GSM_MANAGER_LOGOUT_LOGOUT: |  | ||||||
|                  break; |                  break; | ||||||
|          case GSM_MANAGER_LOGOUT_REBOOT: |          case GSM_MANAGER_LOGOUT_REBOOT: | ||||||
|          case GSM_MANAGER_LOGOUT_REBOOT_INTERACT: |          case GSM_MANAGER_LOGOUT_REBOOT_INTERACT: | ||||||
| @ -71,20 +44,6 @@ index 3cf421cd..924767af 100644 | |||||||
|                  shutdown = TRUE; |                  shutdown = TRUE; | ||||||
|                  break; |                  break; | ||||||
|          default: |          default: | ||||||
|                  g_warning ("Unexpected logout type %d in do_query_end_session_exit()", |  | ||||||
|                             manager->priv->logout_type); |  | ||||||
|                  break; |  | ||||||
|          } |  | ||||||
|   |  | ||||||
|          if (reboot || shutdown) { |  | ||||||
|                  g_signal_connect (manager->priv->system, "shutdown-prepared", |  | ||||||
|                                    G_CALLBACK (on_shutdown_prepared), manager); |  | ||||||
|                  gsm_system_prepare_shutdown (manager->priv->system, reboot); |  | ||||||
|                  return FALSE; /* don't leave query end session yet */ |  | ||||||
|          } |  | ||||||
|   |  | ||||||
|          return TRUE; /* go to end session phase */ |  | ||||||
|  } |  | ||||||
| -- 
 | -- 
 | ||||||
| 2.31.1 | 2.28.0 | ||||||
| 
 | 
 | ||||||
| @ -0,0 +1,53 @@ | |||||||
|  | From 5b150e8c9bd99cf5026a06999be4273b2d53188d Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Ray Strode <rstrode@redhat.com> | ||||||
|  | Date: Wed, 6 May 2020 13:45:50 -0400 | ||||||
|  | Subject: [PATCH] main: only log check-accelerated errors when debugging | ||||||
|  |  enabled | ||||||
|  | 
 | ||||||
|  | The journal currently gets spammed with messages like: | ||||||
|  | 
 | ||||||
|  | gnome-session: gnome-session-check-accelerated: GL Helper exited with code 512 | ||||||
|  | gnome-session: libEGL warning: DRI2: failed to authenticate | ||||||
|  | gnome-session: gnome-session-check-accelerated: GLES Helper exited with code 512 | ||||||
|  | 
 | ||||||
|  | if a the machine lacks accelerated graphics.  But lacking accelerated | ||||||
|  | graphics isn't actually an error (many servers do). | ||||||
|  | 
 | ||||||
|  | This commit changes the messages to only show when debugging is enabled. | ||||||
|  | ---
 | ||||||
|  |  gnome-session/main.c | 8 +++++++- | ||||||
|  |  1 file changed, 7 insertions(+), 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/gnome-session/main.c b/gnome-session/main.c
 | ||||||
|  | index 384ffee7..57091a54 100644
 | ||||||
|  | --- a/gnome-session/main.c
 | ||||||
|  | +++ b/gnome-session/main.c
 | ||||||
|  | @@ -233,6 +233,8 @@ static gboolean
 | ||||||
|  |  check_gl (GError **error) | ||||||
|  |  { | ||||||
|  |          int status; | ||||||
|  | +        g_autofree char *error_output = NULL;
 | ||||||
|  | +
 | ||||||
|  |          char *argv[] = { LIBEXECDIR "/gnome-session-check-accelerated", NULL }; | ||||||
|  |   | ||||||
|  |          if (getenv ("DISPLAY") == NULL) { | ||||||
|  | @@ -240,11 +242,15 @@ check_gl (GError **error)
 | ||||||
|  |                  return TRUE; | ||||||
|  |          } | ||||||
|  |   | ||||||
|  | -        if (!g_spawn_sync (NULL, (char **) argv, NULL, 0, NULL, NULL, &gl_renderer, NULL,
 | ||||||
|  | +        if (!g_spawn_sync (NULL, (char **) argv, NULL, 0, NULL, NULL, &gl_renderer, &error_output,
 | ||||||
|  |                             &status, error)) { | ||||||
|  |                  return FALSE; | ||||||
|  |          } | ||||||
|  |   | ||||||
|  | +        if (error_output != NULL) {
 | ||||||
|  | +                g_debug ("%s", error_output);
 | ||||||
|  | +        }
 | ||||||
|  | +
 | ||||||
|  |  #if GLIB_CHECK_VERSION(2, 70, 0) | ||||||
|  |          return g_spawn_check_wait_status (status, error); | ||||||
|  |  #else | ||||||
|  | -- 
 | ||||||
|  | 2.49.0 | ||||||
|  | 
 | ||||||
							
								
								
									
										109
									
								
								0001-systemd-Drop-blocking-inhibitors-before-shutdown.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								0001-systemd-Drop-blocking-inhibitors-before-shutdown.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,109 @@ | |||||||
|  | From adfe5778edea1273076ed19c51875d5d4a062693 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Adrian Vovk <adrianvovk@gmail.com> | ||||||
|  | Date: Tue, 8 Apr 2025 11:13:57 -0400 | ||||||
|  | Subject: [PATCH] systemd: Drop blocking inhibitors before shutdown | ||||||
|  | 
 | ||||||
|  | Starting in systemd v257, systemd simplified the logic it uses for | ||||||
|  | inhibitors. It'll now enforce blocking inhibitors, even for processes | ||||||
|  | running as the same user that took them. So, gnome-session needs to make | ||||||
|  | sure it's not holding any blocking inhibitors when it's time to shutdown, | ||||||
|  | otherwise systemd will refuse to shutdown. | ||||||
|  | 
 | ||||||
|  | Fixes: https://gitlab.gnome.org/GNOME/gnome-session/-/issues/142 | ||||||
|  | ---
 | ||||||
|  |  gnome-session/gsm-systemd.c | 51 +++++++++++++++++++++++++++---------- | ||||||
|  |  1 file changed, 38 insertions(+), 13 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/gnome-session/gsm-systemd.c b/gnome-session/gsm-systemd.c
 | ||||||
|  | index 9361496e..362491b4 100644
 | ||||||
|  | --- a/gnome-session/gsm-systemd.c
 | ||||||
|  | +++ b/gnome-session/gsm-systemd.c
 | ||||||
|  | @@ -913,6 +913,25 @@ inhibit_done (GObject      *source,
 | ||||||
|  |          } | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | +static void
 | ||||||
|  | +gsm_systemd_call_inhibit (GsmSystemd *manager,
 | ||||||
|  | +                          char       *what)
 | ||||||
|  | +{
 | ||||||
|  | +        g_dbus_proxy_call_with_unix_fd_list (manager->priv->sd_proxy,
 | ||||||
|  | +                                             "Inhibit",
 | ||||||
|  | +                                             g_variant_new ("(ssss)",
 | ||||||
|  | +                                                            what,
 | ||||||
|  | +                                                            g_get_user_name (),
 | ||||||
|  | +                                                            "user session inhibited",
 | ||||||
|  | +                                                            "block"),
 | ||||||
|  | +                                             0,
 | ||||||
|  | +                                             G_MAXINT,
 | ||||||
|  | +                                             NULL,
 | ||||||
|  | +                                             NULL,
 | ||||||
|  | +                                             inhibit_done,
 | ||||||
|  | +                                             manager);
 | ||||||
|  | +}
 | ||||||
|  | +
 | ||||||
|  |  static void | ||||||
|  |  gsm_systemd_set_inhibitors (GsmSystem        *system, | ||||||
|  |                              GsmInhibitorFlag  flags) | ||||||
|  | @@ -936,19 +955,19 @@ gsm_systemd_set_inhibitors (GsmSystem        *system,
 | ||||||
|  |   | ||||||
|  |          if (locks != NULL) { | ||||||
|  |                  g_debug ("Adding system inhibitor on %s", locks); | ||||||
|  | -                g_dbus_proxy_call_with_unix_fd_list (manager->priv->sd_proxy,
 | ||||||
|  | -                                                     "Inhibit",
 | ||||||
|  | -                                                     g_variant_new ("(ssss)",
 | ||||||
|  | -                                                                    locks,
 | ||||||
|  | -                                                                    g_get_user_name (),
 | ||||||
|  | -                                                                    "user session inhibited",
 | ||||||
|  | -                                                                    "block"),
 | ||||||
|  | -                                                     0,
 | ||||||
|  | -                                                     G_MAXINT,
 | ||||||
|  | -                                                     NULL,
 | ||||||
|  | -                                                     NULL,
 | ||||||
|  | -                                                     inhibit_done,
 | ||||||
|  | -                                                     manager);
 | ||||||
|  | +                gsm_systemd_call_inhibit (manager, locks);
 | ||||||
|  | +        } else {
 | ||||||
|  | +                drop_system_inhibitor (manager);
 | ||||||
|  | +        }
 | ||||||
|  | +}
 | ||||||
|  | +
 | ||||||
|  | +static void
 | ||||||
|  | +gsm_systemd_reacquire_inhibitors (GsmSystemd *manager)
 | ||||||
|  | +{
 | ||||||
|  | +        const gchar *locks = manager->priv->inhibit_locks;
 | ||||||
|  | +        if (locks != NULL) {
 | ||||||
|  | +                g_debug ("Reacquiring system inhibitor on %s", locks);
 | ||||||
|  | +                gsm_systemd_call_inhibit (manager, locks);
 | ||||||
|  |          } else { | ||||||
|  |                  drop_system_inhibitor (manager); | ||||||
|  |          } | ||||||
|  | @@ -976,6 +995,7 @@ reboot_or_poweroff_done (GObject      *source,
 | ||||||
|  |                  g_debug ("GsmSystemd: shutdown preparation failed"); | ||||||
|  |                  systemd->priv->prepare_for_shutdown_expected = FALSE; | ||||||
|  |                  g_signal_emit_by_name (systemd, "shutdown-prepared", FALSE); | ||||||
|  | +                gsm_systemd_reacquire_inhibitors (systemd);
 | ||||||
|  |          } else { | ||||||
|  |                  g_variant_unref (result); | ||||||
|  |          } | ||||||
|  | @@ -993,6 +1013,10 @@ gsm_systemd_prepare_shutdown (GsmSystem *system,
 | ||||||
|  |   | ||||||
|  |          g_debug ("GsmSystemd: prepare shutdown"); | ||||||
|  |   | ||||||
|  | +        /* if we're holding a blocking inhibitor to inhibit shutdown, systemd
 | ||||||
|  | +         * will prevent us from shutting down */
 | ||||||
|  | +        drop_system_inhibitor (systemd);
 | ||||||
|  | +
 | ||||||
|  |          res = g_dbus_proxy_call_with_unix_fd_list_sync (systemd->priv->sd_proxy, | ||||||
|  |                                                          "Inhibit", | ||||||
|  |                                                          g_variant_new ("(ssss)", | ||||||
|  | @@ -1010,6 +1034,7 @@ gsm_systemd_prepare_shutdown (GsmSystem *system,
 | ||||||
|  |                  g_warning ("Failed to get delay inhibitor: %s", error->message); | ||||||
|  |                  g_error_free (error); | ||||||
|  |                  g_signal_emit_by_name (systemd, "shutdown-prepared", FALSE); | ||||||
|  | +                gsm_systemd_reacquire_inhibitors (systemd);
 | ||||||
|  |                  return; | ||||||
|  |          } | ||||||
|  |   | ||||||
|  | -- 
 | ||||||
|  | 2.47.1 | ||||||
|  | 
 | ||||||
| @ -1,63 +0,0 @@ | |||||||
| From a42ccfa0e8be2e658d081c3637ff0f43e2b38d3c Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Takao Fujiwara <tfujiwar@redhat.com> |  | ||||||
| Date: Tue, 22 Oct 2019 20:44:04 +0900 |  | ||||||
| Subject: [PATCH] gnome-session: avoid setting LC_ unless LANG and region |  | ||||||
|  disagree |  | ||||||
| 
 |  | ||||||
| At the moment, gnome-session explicitly sets the various LC_ variables |  | ||||||
| to the user configured region. |  | ||||||
| 
 |  | ||||||
| That's unnecessary, though.  If the LC_ variables are unset, |  | ||||||
| applications know to use LANG.  Furthermore, setting the LC_ variables |  | ||||||
| makes it so you can't override them with LANG anymore. |  | ||||||
| 
 |  | ||||||
| This commit makes sure the LC_ variables only get set when absolutely |  | ||||||
| necesary. That is, when they are different than LANG. |  | ||||||
| 
 |  | ||||||
| https://gitlab.gnome.org/GNOME/gnome-session/issues/37 |  | ||||||
| ---
 |  | ||||||
|  gnome-session/gnome-session.in | 14 +++++++++----- |  | ||||||
|  1 file changed, 9 insertions(+), 5 deletions(-) |  | ||||||
| 
 |  | ||||||
| diff --git a/gnome-session/gnome-session.in b/gnome-session/gnome-session.in
 |  | ||||||
| index 7d967d34..90566f1d 100755
 |  | ||||||
| --- a/gnome-session/gnome-session.in
 |  | ||||||
| +++ b/gnome-session/gnome-session.in
 |  | ||||||
| @@ -1,25 +1,29 @@
 |  | ||||||
|  #!/bin/sh |  | ||||||
|   |  | ||||||
|  if [ "x$XDG_SESSION_TYPE" = "xwayland" ] && |  | ||||||
|     [ "x$XDG_SESSION_CLASS" != "xgreeter" ] && |  | ||||||
|     [  -n "$SHELL" ]; then |  | ||||||
|    if [ "$1" != '-l' ]; then |  | ||||||
|      exec bash -c "exec -l '$SHELL' -c '$0 -l $*'" |  | ||||||
|    else |  | ||||||
|      shift |  | ||||||
|    fi |  | ||||||
|  fi |  | ||||||
|   |  | ||||||
|  SETTING=$(gsettings get org.gnome.system.locale region) |  | ||||||
|  REGION=${SETTING#\'} |  | ||||||
|  REGION=${REGION%\'} |  | ||||||
|   |  | ||||||
|  if [ -n "$REGION" ]; then |  | ||||||
| -  export LC_TIME=$REGION
 |  | ||||||
| -  export LC_NUMERIC=$REGION
 |  | ||||||
| -  export LC_MONETARY=$REGION
 |  | ||||||
| -  export LC_MEASUREMENT=$REGION
 |  | ||||||
| -  export LC_PAPER=$REGION
 |  | ||||||
| +  unset LC_TIME LC_NUMERIC LC_MONETARY LC_MEASUREMENT LC_PAPER
 |  | ||||||
| +
 |  | ||||||
| +  if [ "$LANG" != "$REGION" ] ; then
 |  | ||||||
| +    export LC_TIME=$REGION
 |  | ||||||
| +    export LC_NUMERIC=$REGION
 |  | ||||||
| +    export LC_MONETARY=$REGION
 |  | ||||||
| +    export LC_MEASUREMENT=$REGION
 |  | ||||||
| +    export LC_PAPER=$REGION
 |  | ||||||
| +  fi
 |  | ||||||
|  fi |  | ||||||
|   |  | ||||||
|  exec @libexecdir@/gnome-session-binary "$@" |  | ||||||
| -- 
 |  | ||||||
| 2.41.0.rc2 |  | ||||||
| 
 |  | ||||||
| @ -1,53 +0,0 @@ | |||||||
| From ae60cb25636b6f68d087591de11fd681f6f8c918 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Ray Strode <rstrode@redhat.com> |  | ||||||
| Date: Tue, 19 Nov 2019 09:29:16 -0500 |  | ||||||
| Subject: [PATCH] gnome-session: don't validate shell before using it |  | ||||||
| 
 |  | ||||||
| Users sometimes set their shell to an invalid shell to prevent |  | ||||||
| login from proceeding. |  | ||||||
| 
 |  | ||||||
| GNOME on Wayland still allows login in these cases. |  | ||||||
| 
 |  | ||||||
| This commit makes the behavior match expectations by skipping |  | ||||||
| shell validity checks when deciding to run though a login shell. |  | ||||||
| ---
 |  | ||||||
|  gnome-session/gnome-session.in | 5 +---- |  | ||||||
|  1 file changed, 1 insertion(+), 4 deletions(-) |  | ||||||
| 
 |  | ||||||
| diff --git a/gnome-session/gnome-session.in b/gnome-session/gnome-session.in
 |  | ||||||
| index ce63df56..7d967d34 100755
 |  | ||||||
| --- a/gnome-session/gnome-session.in
 |  | ||||||
| +++ b/gnome-session/gnome-session.in
 |  | ||||||
| @@ -1,28 +1,25 @@
 |  | ||||||
|  #!/bin/sh |  | ||||||
|   |  | ||||||
|  if [ "x$XDG_SESSION_TYPE" = "xwayland" ] && |  | ||||||
|     [ "x$XDG_SESSION_CLASS" != "xgreeter" ] && |  | ||||||
| -   [  -n "$SHELL" ] &&
 |  | ||||||
| -   grep -q "$SHELL" /etc/shells &&
 |  | ||||||
| -   ! (echo "$SHELL" | grep -q "false") &&
 |  | ||||||
| -   ! (echo "$SHELL" | grep -q "nologin"); then
 |  | ||||||
| +   [  -n "$SHELL" ]; then
 |  | ||||||
|    if [ "$1" != '-l' ]; then |  | ||||||
|      exec bash -c "exec -l '$SHELL' -c '$0 -l $*'" |  | ||||||
|    else |  | ||||||
|      shift |  | ||||||
|    fi |  | ||||||
|  fi |  | ||||||
|   |  | ||||||
|  SETTING=$(gsettings get org.gnome.system.locale region) |  | ||||||
|  REGION=${SETTING#\'} |  | ||||||
|  REGION=${REGION%\'} |  | ||||||
|   |  | ||||||
|  if [ -n "$REGION" ]; then |  | ||||||
|    export LC_TIME=$REGION |  | ||||||
|    export LC_NUMERIC=$REGION |  | ||||||
|    export LC_MONETARY=$REGION |  | ||||||
|    export LC_MEASUREMENT=$REGION |  | ||||||
|    export LC_PAPER=$REGION |  | ||||||
|  fi |  | ||||||
|   |  | ||||||
|  exec @libexecdir@/gnome-session-binary "$@" |  | ||||||
| -- 
 |  | ||||||
| 2.21.0 |  | ||||||
| 
 |  | ||||||
| @ -1,107 +0,0 @@ | |||||||
| From 7cdf11b1b4b04f8cd366316f6c50a9bd0b4e67d3 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Ray Strode <rstrode@redhat.com> |  | ||||||
| Date: Wed, 6 May 2020 13:45:50 -0400 |  | ||||||
| Subject: [PATCH] main: only log check-accelerated errors when debugging |  | ||||||
|  enabled |  | ||||||
| 
 |  | ||||||
| The journal currently gets spammed with messages like: |  | ||||||
| 
 |  | ||||||
| gnome-session: gnome-session-check-accelerated: GL Helper exited with code 512 |  | ||||||
| gnome-session: libEGL warning: DRI2: failed to authenticate |  | ||||||
| gnome-session: gnome-session-check-accelerated: GLES Helper exited with code 512 |  | ||||||
| 
 |  | ||||||
| if a the machine lacks accelerated graphics.  But lacking accelerated |  | ||||||
| graphics isn't actually an error (many servers do). |  | ||||||
| 
 |  | ||||||
| This commit changes the messages to only show when debugging is enabled. |  | ||||||
| ---
 |  | ||||||
|  gnome-session/main.c | 8 +++++++- |  | ||||||
|  1 file changed, 7 insertions(+), 1 deletion(-) |  | ||||||
| 
 |  | ||||||
| diff --git a/gnome-session/main.c b/gnome-session/main.c
 |  | ||||||
| index b1ac3850..0e75eecf 100644
 |  | ||||||
| --- a/gnome-session/main.c
 |  | ||||||
| +++ b/gnome-session/main.c
 |  | ||||||
| @@ -193,72 +193,78 @@ require_dbus_session (int      argc,
 |  | ||||||
|          g_return_val_if_fail (!g_str_has_prefix (argv[0], "dbus-launch"), |  | ||||||
|                                TRUE); |  | ||||||
|   |  | ||||||
|          /* +2 for our new arguments, +1 for NULL */ |  | ||||||
|          new_argv = g_malloc ((argc + 3) * sizeof (*argv)); |  | ||||||
|   |  | ||||||
|          new_argv[0] = "dbus-launch"; |  | ||||||
|          new_argv[1] = "--exit-with-session"; |  | ||||||
|          for (i = 0; i < argc; i++) { |  | ||||||
|                  new_argv[i + 2] = argv[i]; |  | ||||||
|          } |  | ||||||
|          new_argv[i + 2] = NULL; |  | ||||||
|           |  | ||||||
|          if (!execvp ("dbus-launch", new_argv)) { |  | ||||||
|                  g_set_error (error,  |  | ||||||
|                               G_SPAWN_ERROR, |  | ||||||
|                               G_SPAWN_ERROR_FAILED, |  | ||||||
|                               "No session bus and could not exec dbus-launch: %s", |  | ||||||
|                               g_strerror (errno)); |  | ||||||
|                  return FALSE; |  | ||||||
|          } |  | ||||||
|   |  | ||||||
|          /* Should not be reached */ |  | ||||||
|          return TRUE; |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  static gboolean |  | ||||||
|  check_gl (GError **error) |  | ||||||
|  { |  | ||||||
|          int status; |  | ||||||
| +        g_autofree char *error_output = NULL;
 |  | ||||||
| +
 |  | ||||||
|          char *argv[] = { LIBEXECDIR "/gnome-session-check-accelerated", NULL }; |  | ||||||
|   |  | ||||||
|          if (getenv ("DISPLAY") == NULL) { |  | ||||||
|                  /* Not connected to X11, someone else will take care of checking GL */ |  | ||||||
|                  return TRUE; |  | ||||||
|          } |  | ||||||
|   |  | ||||||
| -        if (!g_spawn_sync (NULL, (char **) argv, NULL, 0, NULL, NULL, &gl_renderer, NULL,
 |  | ||||||
| +        if (!g_spawn_sync (NULL, (char **) argv, NULL, 0, NULL, NULL, &gl_renderer, &error_output,
 |  | ||||||
|                             &status, error)) { |  | ||||||
|                  return FALSE; |  | ||||||
|          } |  | ||||||
|   |  | ||||||
| +        if (error_output != NULL) {
 |  | ||||||
| +            g_debug ("%s", error_output);
 |  | ||||||
| +        }
 |  | ||||||
| +
 |  | ||||||
|          return g_spawn_check_exit_status (status, error); |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  static void |  | ||||||
|  initialize_gio (void) |  | ||||||
|  { |  | ||||||
|          char *disable_fuse = NULL; |  | ||||||
|          char *use_vfs = NULL; |  | ||||||
|   |  | ||||||
|          disable_fuse = g_strdup (g_getenv ("GVFS_DISABLE_FUSE")); |  | ||||||
|          use_vfs = g_strdup (g_getenv ("GIO_USE_VFS")); |  | ||||||
|   |  | ||||||
|          g_setenv ("GVFS_DISABLE_FUSE", "1", TRUE); |  | ||||||
|          g_setenv ("GIO_USE_VFS", "local", TRUE); |  | ||||||
|          g_vfs_get_default (); |  | ||||||
|   |  | ||||||
|          if (use_vfs) { |  | ||||||
|                  g_setenv ("GIO_USE_VFS", use_vfs, TRUE); |  | ||||||
|                  g_free (use_vfs); |  | ||||||
|          } else { |  | ||||||
|                  g_unsetenv ("GIO_USE_VFS"); |  | ||||||
|          } |  | ||||||
|   |  | ||||||
|          if (disable_fuse) { |  | ||||||
|                  g_setenv ("GVFS_DISABLE_FUSE", disable_fuse, TRUE); |  | ||||||
|                  g_free (disable_fuse); |  | ||||||
|          } else { |  | ||||||
|                  g_unsetenv ("GVFS_DISABLE_FUSE"); |  | ||||||
|          } |  | ||||||
|  } |  | ||||||
| -- 
 |  | ||||||
| 2.33.1 |  | ||||||
| 
 |  | ||||||
| @ -1,124 +0,0 @@ | |||||||
| From 06271eea2a12970fbe73b3d3f2c6ae5d79339379 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Ray Strode <rstrode@redhat.com> |  | ||||||
| Date: Mon, 29 Jun 2020 15:15:48 -0400 |  | ||||||
| Subject: [PATCH] session-selector: show cursor explicitly |  | ||||||
| 
 |  | ||||||
| Normally the window manager would show the cursor at start up, but |  | ||||||
| the session selector runs when no window manager is present. |  | ||||||
| 
 |  | ||||||
| This commit makes the session selector explicitly set a cursor, so |  | ||||||
| users can interact with the dialog using the mouse. |  | ||||||
| ---
 |  | ||||||
|  tools/gnome-session-selector.c | 5 +++++ |  | ||||||
|  1 file changed, 5 insertions(+) |  | ||||||
| 
 |  | ||||||
| diff --git a/tools/gnome-session-selector.c b/tools/gnome-session-selector.c
 |  | ||||||
| index 71892c43..9225639e 100644
 |  | ||||||
| --- a/tools/gnome-session-selector.c
 |  | ||||||
| +++ b/tools/gnome-session-selector.c
 |  | ||||||
| @@ -594,60 +594,61 @@ auto_save_next_session_if_needed (void)
 |  | ||||||
|  static int |  | ||||||
|  compare_sessions (GtkTreeModel *model, |  | ||||||
|                    GtkTreeIter  *a, |  | ||||||
|                    GtkTreeIter  *b, |  | ||||||
|                    gpointer      data) |  | ||||||
|  { |  | ||||||
|      char *name_a, *name_b; |  | ||||||
|      int result; |  | ||||||
|   |  | ||||||
|      gtk_tree_model_get (model, a, 0, &name_a, -1); |  | ||||||
|      gtk_tree_model_get (model, b, 0, &name_b, -1); |  | ||||||
|   |  | ||||||
|      result = g_utf8_collate (name_a, name_b); |  | ||||||
|   |  | ||||||
|      g_free (name_a); |  | ||||||
|      g_free (name_b); |  | ||||||
|   |  | ||||||
|      return result; |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  static void |  | ||||||
|  on_map (GtkWidget *widget, |  | ||||||
|          gpointer   data) |  | ||||||
|  { |  | ||||||
|          gdk_window_focus (gtk_widget_get_window (widget), GDK_CURRENT_TIME); |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  int |  | ||||||
|  main (int argc, char *argv[]) |  | ||||||
|  { |  | ||||||
| +        GdkCursor *cursor;
 |  | ||||||
|          GtkWidget *window; |  | ||||||
|          GtkWidget *widget; |  | ||||||
|          GtkCellRenderer *cell; |  | ||||||
|          GtkTreeViewColumn *column; |  | ||||||
|          GtkTreeSelection *selection; |  | ||||||
|          GError *error; |  | ||||||
|   |  | ||||||
|          if (getenv ("SESSION_MANAGER") != NULL) |  | ||||||
|              return 1; |  | ||||||
|   |  | ||||||
|          gtk_init (&argc, &argv); |  | ||||||
|          if (argc > 1) { |  | ||||||
|                  g_print ("create and select session\n"); |  | ||||||
|                  if (!create_and_select_session (argv[1])) |  | ||||||
|                          return 1; |  | ||||||
|                  else |  | ||||||
|                          return 0; |  | ||||||
|          } |  | ||||||
|   |  | ||||||
|          builder = gtk_builder_new (); |  | ||||||
|          gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE); |  | ||||||
|   |  | ||||||
|          error = NULL; |  | ||||||
|          if (!gtk_builder_add_from_file (builder, GTKBUILDER_DIR "/" "session-selector.ui",  &error)) { |  | ||||||
|                  g_warning ("Could not load file 'session-selector.ui': %s", error->message); |  | ||||||
|                  exit (1); |  | ||||||
|          } |  | ||||||
|   |  | ||||||
|          window = (GtkWidget *) gtk_builder_get_object (builder, "main-window"); |  | ||||||
|   |  | ||||||
| @@ -663,36 +664,40 @@ main (int argc, char *argv[])
 |  | ||||||
|          session_list = (GtkWidget *) gtk_builder_get_object (builder, "session-list"); |  | ||||||
|   |  | ||||||
|          selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (session_list)); |  | ||||||
|          gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); |  | ||||||
|   |  | ||||||
|          populate_session_list (session_list); |  | ||||||
|   |  | ||||||
|          cell = gtk_cell_renderer_text_new (); |  | ||||||
|          g_signal_connect (cell, "edited", G_CALLBACK (on_row_edited), NULL); |  | ||||||
|   |  | ||||||
|          column = gtk_tree_view_column_new_with_attributes ("", cell, "text", 0, NULL); |  | ||||||
|          gtk_tree_view_append_column (GTK_TREE_VIEW (session_list), GTK_TREE_VIEW_COLUMN (column)); |  | ||||||
|   |  | ||||||
|          g_signal_connect (session_list, "row-activated", G_CALLBACK (on_row_activated), NULL); |  | ||||||
|   |  | ||||||
|          g_signal_connect (selection, "changed", |  | ||||||
|                            G_CALLBACK (on_selection_changed), NULL); |  | ||||||
|   |  | ||||||
|          widget = (GtkWidget *) gtk_builder_get_object (builder, "new-session"); |  | ||||||
|          g_signal_connect (widget, "clicked", G_CALLBACK (on_new_session_clicked), NULL); |  | ||||||
|          widget = (GtkWidget *) gtk_builder_get_object (builder, "remove-session"); |  | ||||||
|          g_signal_connect (widget, "clicked", G_CALLBACK (on_remove_session_clicked), NULL); |  | ||||||
|          widget = (GtkWidget *) gtk_builder_get_object (builder, "rename-session"); |  | ||||||
|          g_signal_connect (widget, "clicked", G_CALLBACK (on_rename_session_clicked), NULL); |  | ||||||
|          widget = (GtkWidget *) gtk_builder_get_object (builder, "continue-button"); |  | ||||||
|          g_signal_connect (widget, "clicked", G_CALLBACK (on_continue_clicked), NULL); |  | ||||||
|   |  | ||||||
|          g_signal_connect (window, "map", G_CALLBACK (on_map), NULL); |  | ||||||
|          gtk_widget_show (window); |  | ||||||
|   |  | ||||||
| +        cursor = gdk_cursor_new_from_name (gtk_widget_get_display (window),
 |  | ||||||
| +                                           "default");
 |  | ||||||
| +        gdk_window_set_cursor (gtk_widget_get_window (window), cursor);
 |  | ||||||
| +
 |  | ||||||
|          gtk_main (); |  | ||||||
|   |  | ||||||
|          auto_save_next_session_if_needed (); |  | ||||||
|   |  | ||||||
|          return 0; |  | ||||||
|  } |  | ||||||
| -- 
 |  | ||||||
| 2.26.0 |  | ||||||
| 
 |  | ||||||
| @ -1,3 +0,0 @@ | |||||||
| Section "ServerFlags" |  | ||||||
|     Option "DontVTSwitch" "on" |  | ||||||
| EndSection |  | ||||||
| @ -1,38 +0,0 @@ | |||||||
| [org/gnome/desktop/a11y/applications] |  | ||||||
| screen-keyboard-enabled=true |  | ||||||
| 
 |  | ||||||
| [org/gnome/desktop/interface] |  | ||||||
| gtk-im-module='ibus' |  | ||||||
| toolkit-accessibility=true |  | ||||||
| 
 |  | ||||||
| [org/gnome/desktop/lockdown] |  | ||||||
| disable-command-line=true |  | ||||||
| disable-lock-screen=true |  | ||||||
| disable-application-handlers=true |  | ||||||
| disable-user-switching=true |  | ||||||
| user-administration-disabled=true |  | ||||||
| 
 |  | ||||||
| [org/gnome/desktop/wm/keybindings] |  | ||||||
| always-on-top=@as [] |  | ||||||
| begin-move=@as [] |  | ||||||
| begin-resize=@as [] |  | ||||||
| close=@as [] |  | ||||||
| lower=@as [] |  | ||||||
| maximize=@as [] |  | ||||||
| maximize-horizontally=@as [] |  | ||||||
| maximize-vertically=@as [] |  | ||||||
| minimize=@as [] |  | ||||||
| panel-main-menu=@as [] |  | ||||||
| panel-run-dialog=@as [] |  | ||||||
| raise=@as [] |  | ||||||
| raise-or-lower=@as [] |  | ||||||
| show-desktop=@as [] |  | ||||||
| toggle-fullscreen=@as [] |  | ||||||
| toggle-maximized=@as [] |  | ||||||
| unmaximize=@as [] |  | ||||||
| 
 |  | ||||||
| [org/gnome/desktop/wm/preferences] |  | ||||||
| num-workspaces=1 |  | ||||||
| 
 |  | ||||||
| [org/gnome/mutter] |  | ||||||
| dynamic-workspaces=false |  | ||||||
| @ -1,8 +0,0 @@ | |||||||
| /org/gnome/desktop/a11y/applications/screen-keyboard-enabled |  | ||||||
| /org/gnome/desktop/interface/gtk-im-module |  | ||||||
| /org/gnome/desktop/interface/toolkit-accessibility |  | ||||||
| /org/gnome/desktop/lockdown/disable-command-line |  | ||||||
| /org/gnome/desktop/lockdown/disable-lock-screen |  | ||||||
| /org/gnome/desktop/lockdown/disable-application-handlers |  | ||||||
| /org/gnome/desktop/lockdown/disable-user-switching |  | ||||||
| /org/gnome/desktop/lockdown/user-administration-disabled |  | ||||||
| @ -1,5 +0,0 @@ | |||||||
| [Desktop Entry] |  | ||||||
| Name=Kiosk |  | ||||||
| Type=Application |  | ||||||
| Exec=redhat-kiosk |  | ||||||
| 
 |  | ||||||
| @ -1,13 +0,0 @@ | |||||||
| [Desktop Entry] |  | ||||||
| Type=Application |  | ||||||
| Name=Mutter |  | ||||||
| Comment=Window manager |  | ||||||
| Exec=/usr/bin/mutter |  | ||||||
| Categories=GNOME;GTK;Core; |  | ||||||
| OnlyShowIn=GNOME; |  | ||||||
| NoDisplay=true |  | ||||||
| X-GNOME-Autostart-Phase=DisplayServer |  | ||||||
| X-GNOME-Provides=windowmanager; |  | ||||||
| X-GNOME-Autostart-Notify=true |  | ||||||
| X-GNOME-AutoRestart=false |  | ||||||
| X-GNOME-HiddenUnderSystemd=true |  | ||||||
| @ -1,6 +0,0 @@ | |||||||
| [Desktop Entry] |  | ||||||
| Name=Kiosk |  | ||||||
| Comment=Kiosk mode |  | ||||||
| Exec=/usr/bin/gnome-session --session=redhat-kiosk |  | ||||||
| DesktopNames=Red-Hat-Kiosk;GNOME; |  | ||||||
| 
 |  | ||||||
| @ -1,13 +0,0 @@ | |||||||
| [Desktop Entry] |  | ||||||
| Type=Application |  | ||||||
| Name=GNOME Shell Kiosk Mode |  | ||||||
| Comment=Window manager |  | ||||||
| Exec=env DCONF_PROFILE=redhatkiosk /usr/bin/gnome-shell --mode=redhat-kiosk |  | ||||||
| Categories=GNOME;GTK;Core; |  | ||||||
| OnlyShowIn=GNOME; |  | ||||||
| NoDisplay=true |  | ||||||
| X-GNOME-Autostart-Phase=DisplayServer |  | ||||||
| X-GNOME-Provides=windowmanager; |  | ||||||
| X-GNOME-Autostart-Notify=true |  | ||||||
| X-GNOME-AutoRestart=false |  | ||||||
| X-GNOME-HiddenUnderSystemd=true |  | ||||||
| @ -1,6 +0,0 @@ | |||||||
| [Desktop Entry] |  | ||||||
| Name=Kiosk (with on-screen keyboard) |  | ||||||
| Comment=Kiosk mode with on-screen keyboard |  | ||||||
| Exec=/usr/bin/env DCONF_PROFILE=redhatkiosk /usr/bin/gnome-session --session=redhat-kiosk-with-keyboard |  | ||||||
| DesktopNames=Red-Hat-Kiosk;GNOME; |  | ||||||
| 
 |  | ||||||
| @ -1,27 +0,0 @@ | |||||||
| [Desktop Entry] |  | ||||||
| Name[de]=Standard (X11 Anzeige-Server) |  | ||||||
| Name[es]=Estándar (servidor gráfico X11) |  | ||||||
| Name[fr]=Standard (serveur affichage X11) |  | ||||||
| Name[it]=Standard (server grafico X11) |  | ||||||
| Name[ja]=スタンダード (X11 ディスプレイサーバー) |  | ||||||
| Name[ko]=탠다드 (X11 디스플레이 서버) |  | ||||||
| Name[pt_BR]=Padrão (servidor de exibição X11) |  | ||||||
| Name[ru]=Стандартный (дисплейный сервер X11) |  | ||||||
| Name[zh_CN]=标准(X11 显示服务器) |  | ||||||
| Name[zh_TW]=標準(X11顯示服務器) |  | ||||||
| Name=Standard (X11 display server) |  | ||||||
| Comment[de]=Diese Sitzung meldet Sie bei GNOME an |  | ||||||
| Comment[es]=Esta sesión accede a GNOME |  | ||||||
| Comment[fr]=Cette session vous connecte dans GNOME |  | ||||||
| Comment[it]=Questa sessione esegue l'accesso in GNOME |  | ||||||
| Comment[ja]=このセッションで GNOME にログインします |  | ||||||
| Comment[ko]=이 세션을 사용하면 그놈에 로그인합니다 |  | ||||||
| Comment[pt_BR]=Essa sessão o leva ao GNOME |  | ||||||
| Comment[ru]=Этот сеанс позволяет вам войти в GNOME |  | ||||||
| Comment[zh_CN]=此会话将您登录到 GNOME |  | ||||||
| Comment[zh_TW]=這個工作階段讓您登入 GNOME |  | ||||||
| Comment=This session logs you into GNOME |  | ||||||
| Exec=gnome-session |  | ||||||
| TryExec=gnome-session |  | ||||||
| Type=Application |  | ||||||
| DesktopNames=GNOME |  | ||||||
| @ -1,27 +0,0 @@ | |||||||
| [Desktop Entry] |  | ||||||
| Name[de]=Standard (Wayland Anzeige-Server) |  | ||||||
| Name[es]=Estándar (servidor gráfico Wayland) |  | ||||||
| Name[fr]=Standard (serveur affichage Wayland) |  | ||||||
| Name[it]=Standard (server grafico Wayland) |  | ||||||
| Name[ja]=スタンダード (Wayland ディスプレイサーバー) |  | ||||||
| Name[ko]=스탠다드 (Wayland 디스플레이 서버) |  | ||||||
| Name[pt_BR]=Padrão (servidor de exibição Wayland) |  | ||||||
| Name[ru]=Стандартный (дисплейный сервер Wayland) |  | ||||||
| Name[zh_CN]=标准(Wayland 显示服务器) |  | ||||||
| Name[zh_TW]=標準(Wayland顯示服務器) |  | ||||||
| Name=Standard (Wayland display server) |  | ||||||
| Comment[de]=Diese Sitzung meldet Sie bei GNOME an |  | ||||||
| Comment[es]=Esta sesión accede a GNOME |  | ||||||
| Comment[fr]=Cette session vous connecte dans GNOME |  | ||||||
| Comment[it]=Questa sessione esegue l'accesso in GNOME |  | ||||||
| Comment[ja]=このセッションで GNOME にログインします |  | ||||||
| Comment[ko]=이 세션을 사용하면 그놈에 로그인합니다 |  | ||||||
| Comment[pt_BR]=Essa sessão o leva ao GNOME |  | ||||||
| Comment[ru]=Этот сеанс позволяет вам войти в GNOME |  | ||||||
| Comment[zh_CN]=此会话将您登录到 GNOME |  | ||||||
| Comment[zh_TW]=這個工作階段讓您登入 GNOME |  | ||||||
| Comment=This session logs you into GNOME |  | ||||||
| Exec=gnome-session |  | ||||||
| TryExec=gnome-session |  | ||||||
| Type=Application |  | ||||||
| DesktopNames=GNOME |  | ||||||
| @ -1,29 +0,0 @@ | |||||||
| #!/bin/sh |  | ||||||
| 
 |  | ||||||
| if [ ! -e ~/.local/bin/redhat-kiosk ]; then |  | ||||||
|     mkdir -p ~/.local/bin ~/.config |  | ||||||
|     cat > ~/.local/bin/redhat-kiosk << EOF |  | ||||||
| #!/bin/sh |  | ||||||
| # This script is located in ~/.local/bin. |  | ||||||
| # It's provided as an example script to show how |  | ||||||
| # the kiosk session works.  At the moment, the script |  | ||||||
| # just starts a text editor open to itself, but it |  | ||||||
| # should get customized to instead start a full screen |  | ||||||
| # application designed for the kiosk deployment. |  | ||||||
| # The "while true" bit just makes sure the application gets |  | ||||||
| # restarted if it dies for whatever reason. |  | ||||||
| 
 |  | ||||||
| while true; do |  | ||||||
|     gedit ~/.local/bin/redhat-kiosk |  | ||||||
| done |  | ||||||
| 
 |  | ||||||
| EOF |  | ||||||
| 
 |  | ||||||
|     chmod +x ~/.local/bin/redhat-kiosk |  | ||||||
|     touch ~/.config/gnome-initial-setup-done |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| export DCONF_PROFILE=redhatkiosk |  | ||||||
| systemctl --user import-environment DCONF_PROFILE |  | ||||||
| 
 |  | ||||||
| exec ~/.local/bin/redhat-kiosk "$@" |  | ||||||
| @ -1,3 +0,0 @@ | |||||||
| [GNOME Session] |  | ||||||
| Name=Kiosk |  | ||||||
| RequiredComponents=com.redhat.KioskWithKeyboard.WindowManager;com.redhat.Kiosk.Script; |  | ||||||
| @ -1,5 +0,0 @@ | |||||||
| user-db:user |  | ||||||
| system-db:redhatkiosk |  | ||||||
| system-db:local |  | ||||||
| system-db:site |  | ||||||
| system-db:distro |  | ||||||
| @ -1,11 +0,0 @@ | |||||||
| { |  | ||||||
|     "parentMode": "user", |  | ||||||
|     "hasOverview": false, |  | ||||||
|     "hasRunDialog": false, |  | ||||||
|     "allowSettings": false, |  | ||||||
|     "panel": { "left": [""], |  | ||||||
|                "center": [], |  | ||||||
|                "right": ["keyboard"] |  | ||||||
|              } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| @ -1,3 +0,0 @@ | |||||||
| [GNOME Session] |  | ||||||
| Name=Kiosk |  | ||||||
| RequiredComponents=com.redhat.Kiosk.WindowManager;com.redhat.Kiosk.Script; |  | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										6
									
								
								gating.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								gating.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | --- !Policy | ||||||
|  | product_versions: | ||||||
|  |   - rhel-10 | ||||||
|  | decision_context: osci_compose_gate | ||||||
|  | rules: | ||||||
|  |   - !PassingTestCaseRule {test_case_name: desktop-qe.desktop-ci.tier1-gating.functional} | ||||||
							
								
								
									
										141
									
								
								gnome-session.spec
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										141
									
								
								gnome-session.spec
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,141 @@ | |||||||
|  | %define po_package gnome-session-46 | ||||||
|  | 
 | ||||||
|  | %if 0%{?fedora} | ||||||
|  | %else | ||||||
|  | %global with_session_selector 1 | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | %global tarball_version %%(echo %{version} | tr '~' '.') | ||||||
|  | 
 | ||||||
|  | Name:           gnome-session | ||||||
|  | Version:        46.0 | ||||||
|  | Release:        %autorelease | ||||||
|  | Summary:        GNOME session manager | ||||||
|  | 
 | ||||||
|  | License:        GPL-2.0-or-later | ||||||
|  | URL:            https://gitlab.gnome.org/GNOME/gnome-session | ||||||
|  | Source:         https://download.gnome.org/sources/gnome-session/46/%{name}-%{tarball_version}.tar.xz | ||||||
|  | 
 | ||||||
|  | # Blacklist NV30: https://bugzilla.redhat.com/show_bug.cgi?id=745202 | ||||||
|  | Patch:          gnome-session-3.3.92-nv30.patch | ||||||
|  | Patch:          gnome-session-3.6.2-swrast.patch | ||||||
|  | # https://bugzilla.gnome.org/show_bug.cgi?id=772421 | ||||||
|  | Patch:          0001-check-accelerated-gles-Use-eglGetPlatformDisplay-EXT.patch | ||||||
|  | # For https://fedoraproject.org/w/index.php?title=Changes/HiddenGrubMenu | ||||||
|  | # This should go upstream once systemd has a generic interface for this | ||||||
|  | Patch:          0001-Fedora-Set-grub-boot-flags-on-shutdown-reboot.patch | ||||||
|  | # https://issues.redhat.com/browse/RHEL-86871 | ||||||
|  | Patch:          0001-systemd-Drop-blocking-inhibitors-before-shutdown.patch | ||||||
|  | # https://issues.redhat.com/browse/RHEL-88009 | ||||||
|  | Patch:          0001-main-only-log-check-accelerated-errors-when-debuggin.patch | ||||||
|  | 
 | ||||||
|  | Patch:          subscription-manager.patch | ||||||
|  | 
 | ||||||
|  | BuildRequires:  meson | ||||||
|  | BuildRequires:  gcc | ||||||
|  | BuildRequires:  pkgconfig(egl) | ||||||
|  | BuildRequires:  pkgconfig(gl) | ||||||
|  | BuildRequires:  pkgconfig(glesv2) | ||||||
|  | BuildRequires:  pkgconfig(gnome-desktop-3.0) | ||||||
|  | BuildRequires:  pkgconfig(gtk+-3.0) | ||||||
|  | BuildRequires:  pkgconfig(libsystemd) | ||||||
|  | BuildRequires:  pkgconfig(ice) | ||||||
|  | BuildRequires:  pkgconfig(json-glib-1.0) | ||||||
|  | BuildRequires:  pkgconfig(sm) | ||||||
|  | BuildRequires:  pkgconfig(systemd) | ||||||
|  | BuildRequires:  pkgconfig(x11) | ||||||
|  | BuildRequires:  pkgconfig(xau) | ||||||
|  | BuildRequires:  pkgconfig(xcomposite) | ||||||
|  | BuildRequires:  pkgconfig(xext) | ||||||
|  | BuildRequires:  pkgconfig(xrender) | ||||||
|  | BuildRequires:  pkgconfig(xtrans) | ||||||
|  | BuildRequires:  pkgconfig(xtst) | ||||||
|  | 
 | ||||||
|  | # this is so the configure checks find /usr/bin/halt etc. | ||||||
|  | BuildRequires:  usermode | ||||||
|  | 
 | ||||||
|  | BuildRequires:  gettext | ||||||
|  | BuildRequires:  intltool | ||||||
|  | BuildRequires:  xmlto | ||||||
|  | BuildRequires:  /usr/bin/xsltproc | ||||||
|  | 
 | ||||||
|  | # an artificial requires to make sure we get dconf, for now | ||||||
|  | Requires: dconf | ||||||
|  | 
 | ||||||
|  | Requires: system-logos | ||||||
|  | # Needed for gnome-settings-daemon | ||||||
|  | Requires: control-center-filesystem | ||||||
|  | 
 | ||||||
|  | Requires: gsettings-desktop-schemas >= 0.1.7 | ||||||
|  | 
 | ||||||
|  | Requires: dbus | ||||||
|  | Obsoletes: gnome-session-xsession <= 46.0 | ||||||
|  | 
 | ||||||
|  | # https://github.com/containers/composefs/pull/229#issuecomment-1838735764 | ||||||
|  | %if 0%{?rhel} >= 10 | ||||||
|  | ExcludeArch:    %{ix86} | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | %description | ||||||
|  | gnome-session manages a GNOME desktop or GDM login session. It starts up | ||||||
|  | the other core GNOME components and handles logout and saving the session. | ||||||
|  | 
 | ||||||
|  | %package wayland-session | ||||||
|  | Summary: Desktop file for wayland based gnome session | ||||||
|  | Requires: %{name}%{?_isa} = %{version}-%{release} | ||||||
|  | Requires: xorg-x11-server-Xwayland%{?_isa} >= 1.20.99.1 | ||||||
|  | Requires: gnome-shell | ||||||
|  | 
 | ||||||
|  | %description wayland-session | ||||||
|  | Desktop file to add GNOME on wayland to display manager session menu. | ||||||
|  | 
 | ||||||
|  | %prep | ||||||
|  | %autosetup -p1 -n %{name}-%{tarball_version} | ||||||
|  | 
 | ||||||
|  | # Do not start gnome-settings-daemon subman plugin on CentOS | ||||||
|  | %if 0%{?centos} | ||||||
|  | patch -p1 -R < %{_sourcedir}/subscription-manager.patch | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | %build | ||||||
|  | %meson \ | ||||||
|  | %if 0%{?with_session_selector} | ||||||
|  |     -Dsession_selector=true \ | ||||||
|  | %endif | ||||||
|  |   %{nil} | ||||||
|  | %meson_build | ||||||
|  | 
 | ||||||
|  | %install | ||||||
|  | %meson_install | ||||||
|  | 
 | ||||||
|  | rm -rf $RPM_BUILD_ROOT%{_datadir}/xsessions | ||||||
|  | 
 | ||||||
|  | %find_lang %{po_package} | ||||||
|  | 
 | ||||||
|  | %ldconfig_scriptlets | ||||||
|  | 
 | ||||||
|  | %files wayland-session | ||||||
|  | %{_datadir}/wayland-sessions/* | ||||||
|  | 
 | ||||||
|  | %files -f %{po_package}.lang | ||||||
|  | %doc AUTHORS NEWS README | ||||||
|  | %license COPYING | ||||||
|  | %{_bindir}/gnome-session* | ||||||
|  | %{_libexecdir}/gnome-session-binary | ||||||
|  | %{_libexecdir}/gnome-session-check-accelerated | ||||||
|  | %{_libexecdir}/gnome-session-check-accelerated-gl-helper | ||||||
|  | %{_libexecdir}/gnome-session-check-accelerated-gles-helper | ||||||
|  | %{_libexecdir}/gnome-session-ctl | ||||||
|  | %{_libexecdir}/gnome-session-failed | ||||||
|  | %{_mandir}/man1/gnome-session*1.* | ||||||
|  | %{_datadir}/gnome-session/ | ||||||
|  | %dir %{_datadir}/xdg-desktop-portal | ||||||
|  | %{_datadir}/xdg-desktop-portal/gnome-portals.conf | ||||||
|  | %{_datadir}/doc/gnome-session/ | ||||||
|  | %{_datadir}/glib-2.0/schemas/org.gnome.SessionManager.gschema.xml | ||||||
|  | %{_userunitdir}/gnome-session* | ||||||
|  | %{_userunitdir}/gnome-launched-.scope.d/ | ||||||
|  | 
 | ||||||
|  | %changelog | ||||||
|  | %autochangelog | ||||||
							
								
								
									
										1
									
								
								sources
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								sources
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | SHA512 (gnome-session-46.0.tar.xz) = 2187b8ae4ac4ec728283c5dc03edba6472864a704f6c6cd7a3e962515a3925d3a8438f7f89855dd082d2c013868da81e16da280c70b0e07537c8e431301b4bd8 | ||||||
							
								
								
									
										26
									
								
								subscription-manager.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								subscription-manager.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | |||||||
|  | From 523602887f92b448b497e99bf56d0b9f1ef376f7 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Kalev Lember <klember@redhat.com> | ||||||
|  | Date: Mon, 6 Sep 2021 21:12:38 +0200 | ||||||
|  | Subject: [PATCH] data: Require org.gnome.SettingsDaemon.Subscription | ||||||
|  | 
 | ||||||
|  | Make sure the gnome-settings-daemon subman plugin gets started on | ||||||
|  | session startup. | ||||||
|  | ---
 | ||||||
|  |  data/meson.build | 1 + | ||||||
|  |  1 file changed, 1 insertion(+) | ||||||
|  | 
 | ||||||
|  | diff --git a/data/meson.build b/data/meson.build
 | ||||||
|  | index e02b80d3..1684a99e 100644
 | ||||||
|  | --- a/data/meson.build
 | ||||||
|  | +++ b/data/meson.build
 | ||||||
|  | @@ -24,6 +24,7 @@ required_components = {
 | ||||||
|  |      'org.gnome.SettingsDaemon.Sharing', | ||||||
|  |      'org.gnome.SettingsDaemon.Smartcard', | ||||||
|  |      'org.gnome.SettingsDaemon.Sound', | ||||||
|  | +    'org.gnome.SettingsDaemon.Subscription',
 | ||||||
|  |      'org.gnome.SettingsDaemon.UsbProtection', | ||||||
|  |      'org.gnome.SettingsDaemon.Wacom', | ||||||
|  |      'org.gnome.SettingsDaemon.XSettings', | ||||||
|  | -- 
 | ||||||
|  | 2.31.1 | ||||||
|  | 
 | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user