From 1eb5b0dcf3a9ea4e394806ff7dac816e46f96895 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Tue, 13 May 2025 14:23:46 +0000 Subject: [PATCH] import CS gnome-kiosk-40.0-7.el9_6 --- ...dd-missing-dependency-on-gio-unix-2..patch | 31 +++++++++ ...y-and-run-the-script-from-XDG_RUNTIM.patch | 56 ++++++++++++++++ ...search-app-Add-systemd-session-files.patch | 64 +++++++++++++++++++ ...h-app-Update-desktop-file-definition.patch | 30 +++++++++ SPECS/gnome-kiosk.spec | 18 +++++- 5 files changed, 198 insertions(+), 1 deletion(-) create mode 100644 SOURCES/0001-input-selector-Add-missing-dependency-on-gio-unix-2..patch create mode 100644 SOURCES/0001-kiosk-script-Copy-and-run-the-script-from-XDG_RUNTIM.patch create mode 100644 SOURCES/0001-search-app-Add-systemd-session-files.patch create mode 100644 SOURCES/0002-search-app-Update-desktop-file-definition.patch diff --git a/SOURCES/0001-input-selector-Add-missing-dependency-on-gio-unix-2..patch b/SOURCES/0001-input-selector-Add-missing-dependency-on-gio-unix-2..patch new file mode 100644 index 0000000..80ae269 --- /dev/null +++ b/SOURCES/0001-input-selector-Add-missing-dependency-on-gio-unix-2..patch @@ -0,0 +1,31 @@ +From d68e2443746f47c6eecab0c4009b82628918561c Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +Date: Tue, 10 Dec 2024 13:56:13 +0100 +Subject: [PATCH] input-selector: Add missing dependency on gio-unix-2.0 + +The build of input-selector may fail otherwise, as the generated code +from gdbus-codegen cannot find the header file : + +input-selector/org.gnome.Kiosk.c:17:12: fatal error: gio/gunixfdlist.h: + No such file or directory + 17 | # include + +Adding the dependency ensures that the path to the header file is known. +--- + input-selector/meson.build | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/input-selector/meson.build b/input-selector/meson.build +index 839426f..6aa90af 100644 +--- a/input-selector/meson.build ++++ b/input-selector/meson.build +@@ -1,5 +1,6 @@ + input_selector_dependencies = [] + input_selector_dependencies += dependency('gio-2.0') ++input_selector_dependencies += dependency('gio-unix-2.0') + input_selector_dependencies += dependency('glib-2.0') + input_selector_dependencies += dependency('gobject-2.0') + input_selector_dependencies += dependency('gtk4') +-- +2.47.1 + diff --git a/SOURCES/0001-kiosk-script-Copy-and-run-the-script-from-XDG_RUNTIM.patch b/SOURCES/0001-kiosk-script-Copy-and-run-the-script-from-XDG_RUNTIM.patch new file mode 100644 index 0000000..e15afb0 --- /dev/null +++ b/SOURCES/0001-kiosk-script-Copy-and-run-the-script-from-XDG_RUNTIM.patch @@ -0,0 +1,56 @@ +From 9497651214baaae6dabe7cc1971a1799633983a6 Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +Date: Fri, 22 Nov 2024 17:04:09 +0100 +Subject: [PATCH] kiosk-script: Copy and run the script from XDG_RUNTIME_DIR + +Some setup may enforce the noexec flag on the HOME directories. + +That prevents any executable placed in the HOME directory from running, +including the GNOME Kiosk script session. + +To work around such an issue, copy and execute the script from the +XDG_RUNTIME_DIR instead. + +Signed-off-by: Olivier Fourdan +--- + kiosk-script/gnome-kiosk-script | 18 +++++++++++++----- + 1 file changed, 13 insertions(+), 5 deletions(-) + +diff --git a/kiosk-script/gnome-kiosk-script b/kiosk-script/gnome-kiosk-script +index e45438d..c4ab176 100755 +--- a/kiosk-script/gnome-kiosk-script ++++ b/kiosk-script/gnome-kiosk-script +@@ -1,8 +1,10 @@ + #!/usr/bin/sh + +-if [ ! -e ~/.local/bin/gnome-kiosk-script ]; then +- mkdir -p ~/.local/bin ~/.config +- cat > ~/.local/bin/gnome-kiosk-script <<- "EOF" ++EXECDIR=~/.local/bin ++ ++if [ ! -e $EXECDIR/gnome-kiosk-script ]; then ++ mkdir -p $EXECDIR ~/.config ++ cat > $EXECDIR/gnome-kiosk-script <<- "EOF" + #!/bin/sh + # This script is located in ~/.local/bin. + # It's provided as an example script to show how +@@ -16,8 +18,14 @@ if [ ! -e ~/.local/bin/gnome-kiosk-script ]; then + exec "$0" "$@" + EOF + +- chmod +x ~/.local/bin/gnome-kiosk-script ++ chmod +x $EXECDIR/gnome-kiosk-script + touch ~/.config/gnome-initial-setup-done + fi + +-exec ~/.local/bin/gnome-kiosk-script "$@" ++# Copy and run the script from the XDG_RUNTIME_DIR directory if that exists ++if [ -d $XDG_RUNTIME_DIR ]; then ++ cp $EXECDIR/gnome-kiosk-script $XDG_RUNTIME_DIR/ ++ EXECDIR=$XDG_RUNTIME_DIR ++fi ++ ++exec $EXECDIR/gnome-kiosk-script "$@" +-- +2.47.1 + diff --git a/SOURCES/0001-search-app-Add-systemd-session-files.patch b/SOURCES/0001-search-app-Add-systemd-session-files.patch new file mode 100644 index 0000000..f05a713 --- /dev/null +++ b/SOURCES/0001-search-app-Add-systemd-session-files.patch @@ -0,0 +1,64 @@ +From e0a8d2005c68a4b2ca1543149f50c03c3c7c0b5f Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +Date: Tue, 4 Mar 2025 16:21:30 +0100 +Subject: [PATCH 1/2] search-app: Add systemd session files + +The search appliance session would fail to start as a systemd session. + +Add the required systemd plumbing to fix the search appliance session. + +(cherry picked from commit 5308432e1c564ec096acbb3f4fb19f940d6c2ae9) +--- + meson.build | 12 ++++++++++++ + .../systemd/org.gnome.Kiosk.SearchApp.service.in | 8 ++++++++ + search-app/systemd/session.conf | 3 +++ + 3 files changed, 23 insertions(+) + create mode 100644 search-app/systemd/org.gnome.Kiosk.SearchApp.service.in + create mode 100644 search-app/systemd/session.conf + +diff --git a/meson.build b/meson.build +index 0766f8d..e3d8ff3 100644 +--- a/meson.build ++++ b/meson.build +@@ -188,3 +188,15 @@ i18n.merge_file('desktop', + install_dir: desktop_data_dir, + type: 'desktop' + ) ++ ++configure_file( ++ input: 'search-app/systemd/org.gnome.Kiosk.SearchApp.service.in', ++ output: '@BASENAME@', ++ configuration: systemd_service_config_data, ++ install_dir: systemd_user_unit_dir ++) ++ ++kiosk_search_appliance_systemd_target_dir = join_paths(systemd_user_unit_dir, 'gnome-session@org.gnome.Kiosk.SearchApp.target.d') ++install_data('search-app/systemd/session.conf', ++ install_dir: kiosk_search_appliance_systemd_target_dir ++) +diff --git a/search-app/systemd/org.gnome.Kiosk.SearchApp.service.in b/search-app/systemd/org.gnome.Kiosk.SearchApp.service.in +new file mode 100644 +index 0000000..29ddcd8 +--- /dev/null ++++ b/search-app/systemd/org.gnome.Kiosk.SearchApp.service.in +@@ -0,0 +1,8 @@ ++[Unit] ++Description=Kiosk Search Appliance ++BindsTo=gnome-session.target ++After=gnome-session.target ++ ++[Service] ++ExecStart=@bindir@/firefox --kiosk --private-window --new-instance https://www.google.com ++Restart=always +diff --git a/search-app/systemd/session.conf b/search-app/systemd/session.conf +new file mode 100644 +index 0000000..1ab41da +--- /dev/null ++++ b/search-app/systemd/session.conf +@@ -0,0 +1,3 @@ ++[Unit] ++Requires=org.gnome.Kiosk.target ++Requires=org.gnome.Kiosk.SearchApp.service +-- +2.48.1 + diff --git a/SOURCES/0002-search-app-Update-desktop-file-definition.patch b/SOURCES/0002-search-app-Update-desktop-file-definition.patch new file mode 100644 index 0000000..99c9198 --- /dev/null +++ b/SOURCES/0002-search-app-Update-desktop-file-definition.patch @@ -0,0 +1,30 @@ +From a94bce8532d6f9f9fb1fd888e54803220a733765 Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +Date: Wed, 5 Mar 2025 14:23:49 +0100 +Subject: [PATCH 2/2] search-app: Update desktop file definition + +Firefox itself has nothing to do with neither Gtk or GNOME, no need to +list those in the categories. + +(cherry picked from commit 7f6defb5d1afd4aeee55d286256879118ba9c008) +--- + search-app/org.gnome.Kiosk.SearchApp.desktop.in.in | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/search-app/org.gnome.Kiosk.SearchApp.desktop.in.in b/search-app/org.gnome.Kiosk.SearchApp.desktop.in.in +index 40a8669..7d85d56 100644 +--- a/search-app/org.gnome.Kiosk.SearchApp.desktop.in.in ++++ b/search-app/org.gnome.Kiosk.SearchApp.desktop.in.in +@@ -3,7 +3,6 @@ Type=Application + Name=Search Appliance + Comment=Sample Search Appliance Application for GNOME Kiosk + Exec=@bindir@/firefox --kiosk --private-window --new-instance http://www.google.com +-Categories=GNOME;GTK;Core; +-OnlyShowIn=GNOME; ++Categories=Core;System; + NoDisplay=true +-X-GNOME-AutoRestart=true ++X-GNOME-HiddenUnderSystemd=true +-- +2.48.1 + diff --git a/SPECS/gnome-kiosk.spec b/SPECS/gnome-kiosk.spec index 0dfd188..318088e 100644 --- a/SPECS/gnome-kiosk.spec +++ b/SPECS/gnome-kiosk.spec @@ -12,7 +12,7 @@ Name: gnome-kiosk Version: 40.0 -Release: 5%{?dist} +Release: 7%{?dist} Summary: Window management and application launching for GNOME License: GPLv2+ @@ -50,6 +50,12 @@ Patch20005: 0005-kiosk-script-Add-a-hint-about-using-firefox-to-the-k.patch Patch20006: 0006-kiosk-script-Send-SIGHUP-to-script-at-shutdown-time.patch Patch30001: 0001-compositor-Be-more-permissive-about-what-s-considere.patch +# https://issues.redhat.com/browse/RHEL-25536 +Patch40001: 0001-input-selector-Add-missing-dependency-on-gio-unix-2..patch +Patch40002: 0001-kiosk-script-Copy-and-run-the-script-from-XDG_RUNTIM.patch +# https://issues.redhat.com/browse/RHEL-84004 +Patch50001: 0001-search-app-Add-systemd-session-files.patch +Patch50002: 0002-search-app-Update-desktop-file-definition.patch %description GNOME Kiosk provides a desktop enviroment suitable for fixed purpose, or @@ -110,12 +116,22 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Kiosk.Searc %{_datadir}/xsessions/gnome-kiosk-script.desktop %files -n gnome-kiosk-search-appliance +%{_userunitdir}/gnome-session@org.gnome.Kiosk.SearchApp.target.d/session.conf +%{_userunitdir}/org.gnome.Kiosk.SearchApp.service %{_datadir}/applications/org.gnome.Kiosk.SearchApp.desktop %{_datadir}/gnome-session/sessions/org.gnome.Kiosk.SearchApp.session %{_datadir}/xsessions/org.gnome.Kiosk.SearchApp.Session.desktop %{_datadir}/wayland-sessions/org.gnome.Kiosk.SearchApp.Session.desktop %changelog +* Tue Mar 18 2025 Olivier Fourdan - 40.0-7 +- search-app: Add systemd session files + Resolves: https://issues.redhat.com/browse/RHEL-84004 + +* Wed Dec 18 2024 Ray Strode - 40.0-6 +- Copy and run the script from XDG_RUNTIME_DIR + Resolves: https://issues.redhat.com/browse/RHEL-25536 + * Wed Nov 09 2022 Ray Strode - 40.0-5 - Detect anaconda as the kiosk app better Resolves: #1999060