import gnome-session-3.28.1-10.el8
This commit is contained in:
parent
3ae60a5e1c
commit
9cb6b7b21b
124
SOURCES/0001-session-selector-show-cursor-explicitly.patch
Normal file
124
SOURCES/0001-session-selector-show-cursor-explicitly.patch
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
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
|
||||||
|
|
5
SOURCES/com.redhat.Kiosk.Script.desktop
Normal file
5
SOURCES/com.redhat.Kiosk.Script.desktop
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=Kiosk
|
||||||
|
Type=Application
|
||||||
|
Exec=redhat-kiosk
|
||||||
|
|
13
SOURCES/com.redhat.Kiosk.WindowManager.desktop
Normal file
13
SOURCES/com.redhat.Kiosk.WindowManager.desktop
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
[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
|
6
SOURCES/com.redhat.Kiosk.desktop
Normal file
6
SOURCES/com.redhat.Kiosk.desktop
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=Kiosk
|
||||||
|
Comment=Kiosk mode
|
||||||
|
Exec=/usr/bin/gnome-session --session=redhat-kiosk
|
||||||
|
DesktopNames=Red-Hat-Kiosk;GNOME;
|
||||||
|
|
26
SOURCES/redhat-kiosk
Executable file
26
SOURCES/redhat-kiosk
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
exec ~/.local/bin/redhat-kiosk "$@"
|
3
SOURCES/redhat-kiosk.session
Normal file
3
SOURCES/redhat-kiosk.session
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[GNOME Session]
|
||||||
|
Name=Kiosk
|
||||||
|
RequiredComponents=com.redhat.Kiosk.WindowManager;com.redhat.Kiosk.Script;
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
Name: gnome-session
|
Name: gnome-session
|
||||||
Version: 3.28.1
|
Version: 3.28.1
|
||||||
Release: 8%{?dist}
|
Release: 10%{?dist}
|
||||||
Summary: GNOME session manager
|
Summary: GNOME session manager
|
||||||
|
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
@ -17,6 +17,13 @@ URL: http://www.gnome.org
|
|||||||
Source0: http://download.gnome.org/sources/gnome-session/3.28/%{name}-%{version}.tar.xz
|
Source0: http://download.gnome.org/sources/gnome-session/3.28/%{name}-%{version}.tar.xz
|
||||||
Source1: gnome.desktop
|
Source1: gnome.desktop
|
||||||
Source2: gnome-xorg.desktop
|
Source2: gnome-xorg.desktop
|
||||||
|
Source3: com.redhat.Kiosk.WindowManager.desktop
|
||||||
|
Source4: com.redhat.Kiosk.Script.desktop
|
||||||
|
Source5: com.redhat.Kiosk.desktop
|
||||||
|
Source6: redhat-kiosk.session
|
||||||
|
Source7: redhat-kiosk
|
||||||
|
|
||||||
|
Patch0: 0001-gnome-session-don-t-validate-shell-before-using-it.patch
|
||||||
|
|
||||||
# Blacklist NV30: https://bugzilla.redhat.com/show_bug.cgi?id=745202
|
# Blacklist NV30: https://bugzilla.redhat.com/show_bug.cgi?id=745202
|
||||||
Patch1: gnome-session-3.3.92-nv30.patch
|
Patch1: gnome-session-3.3.92-nv30.patch
|
||||||
@ -24,6 +31,8 @@ Patch3: gnome-session-3.6.2-swrast.patch
|
|||||||
# https://bugzilla.gnome.org/show_bug.cgi?id=772421
|
# https://bugzilla.gnome.org/show_bug.cgi?id=772421
|
||||||
Patch4: 0001-check-accelerated-gles-Use-eglGetPlatformDisplay-EXT.patch
|
Patch4: 0001-check-accelerated-gles-Use-eglGetPlatformDisplay-EXT.patch
|
||||||
|
|
||||||
|
Patch10001: 0001-session-selector-show-cursor-explicitly.patch
|
||||||
|
|
||||||
BuildRequires: meson
|
BuildRequires: meson
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: pkgconfig(egl)
|
BuildRequires: pkgconfig(egl)
|
||||||
@ -64,8 +73,6 @@ Requires: dbus-x11
|
|||||||
|
|
||||||
Conflicts: gnome-settings-daemon < 3.27.90
|
Conflicts: gnome-settings-daemon < 3.27.90
|
||||||
|
|
||||||
Patch0: 0001-gnome-session-don-t-validate-shell-before-using-it.patch
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
gnome-session manages a GNOME desktop or GDM login session. It starts up
|
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.
|
the other core GNOME components and handles logout and saving the session.
|
||||||
@ -85,6 +92,17 @@ Requires: xorg-x11-server-Xwayland%{?_isa}
|
|||||||
%description wayland-session
|
%description wayland-session
|
||||||
Desktop file to add GNOME on wayland to display manager session menu.
|
Desktop file to add GNOME on wayland to display manager session menu.
|
||||||
|
|
||||||
|
%package kiosk-session
|
||||||
|
Summary: Desktop file for mutter based kiosk session
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: mutter
|
||||||
|
Recommends: gedit
|
||||||
|
Recommends: gnome-terminal
|
||||||
|
Recommends: gnome-control-center
|
||||||
|
|
||||||
|
%description kiosk-session
|
||||||
|
Desktop file to add basic session used for setting up kiosk applications.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1
|
%autosetup -p1
|
||||||
|
|
||||||
@ -105,6 +123,12 @@ cp $RPM_SOURCE_DIR/gnome.desktop $RPM_BUILD_ROOT%{_datadir}/wayland-sessions
|
|||||||
cp $RPM_SOURCE_DIR/gnome-xorg.desktop $RPM_BUILD_ROOT%{_datadir}/xsessions
|
cp $RPM_SOURCE_DIR/gnome-xorg.desktop $RPM_BUILD_ROOT%{_datadir}/xsessions
|
||||||
cp $RPM_SOURCE_DIR/gnome-xorg.desktop $RPM_BUILD_ROOT%{_datadir}/xsessions/gnome.desktop
|
cp $RPM_SOURCE_DIR/gnome-xorg.desktop $RPM_BUILD_ROOT%{_datadir}/xsessions/gnome.desktop
|
||||||
|
|
||||||
|
install -D $RPM_SOURCE_DIR/com.redhat.Kiosk.WindowManager.desktop -t $RPM_BUILD_ROOT/%{_datadir}/applications
|
||||||
|
install -D $RPM_SOURCE_DIR/com.redhat.Kiosk.Script.desktop -t $RPM_BUILD_ROOT%{_datadir}/applications
|
||||||
|
install -D $RPM_SOURCE_DIR/com.redhat.Kiosk.desktop -t $RPM_BUILD_ROOT%{_datadir}/xsessions
|
||||||
|
install -D $RPM_SOURCE_DIR/redhat-kiosk.session -t $RPM_BUILD_ROOT%{_datadir}/gnome-session/sessions
|
||||||
|
install -D $RPM_SOURCE_DIR/redhat-kiosk -t $RPM_BUILD_ROOT%{_bindir}
|
||||||
|
|
||||||
%find_lang %{po_package}
|
%find_lang %{po_package}
|
||||||
|
|
||||||
%ldconfig_scriptlets
|
%ldconfig_scriptlets
|
||||||
@ -115,6 +139,13 @@ cp $RPM_SOURCE_DIR/gnome-xorg.desktop $RPM_BUILD_ROOT%{_datadir}/xsessions/gnome
|
|||||||
%files wayland-session
|
%files wayland-session
|
||||||
%{_datadir}/wayland-sessions/*
|
%{_datadir}/wayland-sessions/*
|
||||||
|
|
||||||
|
%files kiosk-session
|
||||||
|
%{_datadir}/applications/com.redhat.Kiosk.WindowManager.desktop
|
||||||
|
%{_datadir}/applications/com.redhat.Kiosk.Script.desktop
|
||||||
|
%{_datadir}/xsessions/com.redhat.Kiosk.desktop
|
||||||
|
%{_datadir}/gnome-session/sessions/redhat-kiosk.session
|
||||||
|
%{_bindir}/redhat-kiosk
|
||||||
|
|
||||||
%files -f %{po_package}.lang
|
%files -f %{po_package}.lang
|
||||||
%doc AUTHORS NEWS README
|
%doc AUTHORS NEWS README
|
||||||
%license COPYING
|
%license COPYING
|
||||||
@ -131,6 +162,15 @@ cp $RPM_SOURCE_DIR/gnome-xorg.desktop $RPM_BUILD_ROOT%{_datadir}/xsessions/gnome
|
|||||||
%{_datadir}/glib-2.0/schemas/org.gnome.SessionManager.gschema.xml
|
%{_datadir}/glib-2.0/schemas/org.gnome.SessionManager.gschema.xml
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jun 29 2020 Ray Strode <rstrode@redhat.com> - 3.28.1-10
|
||||||
|
- Show cursor explicitly from session selector
|
||||||
|
Resolves: #1624430
|
||||||
|
|
||||||
|
* Tue May 19 2020 Ray Strode <rstrode@redhat.com> - 3.28.1-9
|
||||||
|
- Add kiosk-session subpackage to help users set up RHEL for
|
||||||
|
kiosk/point-of-sale use.
|
||||||
|
Resolves: #1739556
|
||||||
|
|
||||||
* Wed Nov 20 2019 Tomas Pelka <tpelka@redhat.com> - 3.28.1-8
|
* Wed Nov 20 2019 Tomas Pelka <tpelka@redhat.com> - 3.28.1-8
|
||||||
- rebuild and version bump to avoid future conflict with z-stream version
|
- rebuild and version bump to avoid future conflict with z-stream version
|
||||||
Resolves: #1745147
|
Resolves: #1745147
|
||||||
|
Loading…
Reference in New Issue
Block a user