Accepting request 952883 from GNOME:Factory

- Update gs-fate318433-prevent-same-account-multi-logins.patch:
  Fix the JS ERR: Error: Wrong type number; string expected
  (bsc#1195179 bsc#1195141). (forwarded request 952873 from xiaoguang_wang)

OBS-URL: https://build.opensuse.org/request/show/952883
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gnome-shell?expand=0&rev=217
This commit is contained in:
Dominique Leuenberger 2022-02-09 19:38:04 +00:00 committed by Git OBS Bridge
commit 2f9744957f
4 changed files with 105 additions and 60 deletions

82
2078.patch Normal file
View File

@ -0,0 +1,82 @@
From 65450a836ee9e0722a2d4c3327f52345eae293c6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Thu, 23 Dec 2021 17:18:16 +0100
Subject: [PATCH] build: Drop incorrect positional arg
Unlike other targets that take a name, i18n.merge_file() does not.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2078>
---
data/meson.build | 2 +-
src/calendar-server/meson.build | 2 +-
subprojects/extensions-app/data/meson.build | 2 +-
subprojects/extensions-app/data/metainfo/meson.build | 2 +-
subprojects/extensions-tool/src/templates/meson.build | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/data/meson.build b/data/meson.build
index f924fdf806..76ae45c93a 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -16,7 +16,7 @@ desktopconf.set('bindir', bindir)
desktopconf.set('systemd_hidden', have_systemd ? 'true' : 'false')
foreach desktop_file : desktop_files
- i18n.merge_file('desktop',
+ i18n.merge_file(
input: configure_file(
input: desktop_file + '.in.in',
output: desktop_file + '.in',
diff --git a/src/calendar-server/meson.build b/src/calendar-server/meson.build
index 7363282a59..8b4ef411c8 100644
--- a/src/calendar-server/meson.build
+++ b/src/calendar-server/meson.build
@@ -27,7 +27,7 @@ configure_file(
install_dir: servicedir
)
-i18n.merge_file('evolution-calendar.desktop',
+i18n.merge_file(
input: 'evolution-calendar.desktop.in',
output: 'evolution-calendar.desktop',
po_dir: po_dir,
diff --git a/subprojects/extensions-app/data/meson.build b/subprojects/extensions-app/data/meson.build
index d7e7d4001c..4b601e8bd1 100644
--- a/subprojects/extensions-app/data/meson.build
+++ b/subprojects/extensions-app/data/meson.build
@@ -14,7 +14,7 @@ desktopconf.set('bindir', bindir)
desktopconf.set('app_id', app_id)
desktopconf.set('prgname', prgname)
-i18n.merge_file('desktop',
+i18n.merge_file(
input: configure_file(
input: base_id + '.desktop.in.in',
output: desktop_file + '.in',
diff --git a/subprojects/extensions-app/data/metainfo/meson.build b/subprojects/extensions-app/data/metainfo/meson.build
index c4962c0576..a19bfa80a4 100644
--- a/subprojects/extensions-app/data/metainfo/meson.build
+++ b/subprojects/extensions-app/data/metainfo/meson.build
@@ -1,5 +1,5 @@
metainfo = app_id + '.metainfo.xml'
-i18n.merge_file(metainfo,
+i18n.merge_file(
input: base_id + '.metainfo.xml.in',
output: metainfo,
po_dir: po_dir,
diff --git a/subprojects/extensions-tool/src/templates/meson.build b/subprojects/extensions-tool/src/templates/meson.build
index 670e2bf448..d693bfaddb 100644
--- a/subprojects/extensions-tool/src/templates/meson.build
+++ b/subprojects/extensions-tool/src/templates/meson.build
@@ -4,7 +4,7 @@ template_metas = [
]
template_deps = []
foreach template : template_metas
- template_deps += i18n.merge_file(template,
+ template_deps += i18n.merge_file(
input: template + '.in',
output: template,
po_dir: po_dir,
--
GitLab

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Wed Feb 9 06:23:06 UTC 2022 - Xiaoguang Wang <xiaoguang.wang@suse.com>
- Update gs-fate318433-prevent-same-account-multi-logins.patch:
Fix the JS ERR: Error: Wrong type number; string expected
(bsc#1195179 bsc#1195141).
-------------------------------------------------------------------
Tue Feb 8 17:04:07 UTC 2022 - Bjørn Lie <bjorn.lie@gmail.com>
- Add 2078.patch: Fix build with meson 0.61 and newer.
-------------------------------------------------------------------
Thu Jan 27 02:58:53 UTC 2022 - Yifan Jiang <yfjiang@suse.com>

View File

@ -49,6 +49,8 @@ Patch6: gnome-shell-jsc#SLE-16051-Input-method-recommendation.patch
Patch7: gnome-shell-executable-path-not-absolute.patch
# PATCH-FIX-UPSTREAM gnome-shell-exit-crash-workaround.patch bsc#1190878 glgo#GNOME/gnome-shell#4344 qkzhu@suse.com -- Workaround logout crashing
Patch8: gnome-shell-exit-crash-workaround.patch
# PATCH-FIX-UPSTREAM 2078.patch -- Fix build with meson 0.61 and newer
Patch9: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2078.patch
## NOTE: Keep SLE-only patches at bottom (starting on 1000).
# PATCH-FEATURE-SLE gnome-shell-gdm-login-applet.patch fate#314545 dliang@suse.com -- Add an applet on login UI to display suse icon, product name, hostname.
@ -187,13 +189,14 @@ This package contains an optional extensions app for managing GNOME Shell extens
%endif
%patch7 -p1
%patch8 -p1
%patch9 -p1
%if 0%{?sle_version}
%patch1001 -p1
%patch1002 -p1
%patch1003 -p1
%patch1004 -p1
# %patch1007 -p1
%patch1007 -p1
%endif
cp %{SOURCE2} data/theme/

View File

@ -1,58 +1,13 @@
Index: gnome-shell-41.2/js/gdm/authPrompt.js
Index: gnome-shell-41.3/js/gdm/loginDialog.js
===================================================================
--- gnome-shell-41.2.orig/js/gdm/authPrompt.js
+++ gnome-shell-41.2/js/gdm/authPrompt.js
@@ -31,6 +31,8 @@ var AuthPromptStatus = {
VERIFICATION_SUCCEEDED: 3,
VERIFICATION_CANCELLED: 4,
VERIFICATION_IN_PROGRESS: 5,
+ // NOTE fate#318433 extra state to track multi-login situation
+ VERIFIED_BUT_FORBIDDEN: 6,
};
var BeginRequestType = {
@@ -338,7 +340,13 @@ var AuthPrompt = GObject.registerClass({
}
_onVerificationComplete() {
+ // NOTE update the spinning icon
this.setActorInDefaultButtonWell(null);
+
+ if (this.verificationStatus === AuthPromptStatus.VERIFIED_BUT_FORBIDDEN) {
+ this.cancelButton.reactive = true;
+ return;
+ }
this.verificationStatus = AuthPromptStatus.VERIFICATION_SUCCEEDED;
this.cancelButton.reactive = false;
this.cancelButton.can_focus = false;
Index: gnome-shell-41.2/js/gdm/loginDialog.js
===================================================================
--- gnome-shell-41.2.orig/js/gdm/loginDialog.js
+++ gnome-shell-41.2/js/gdm/loginDialog.js
@@ -952,6 +952,8 @@ var LoginDialog = GObject.registerClass(
this._authPrompt.updateSensitivity(false);
let answer = this._authPrompt.getAnswer();
this._user = this._userManager.get_user(answer);
+ this._userLoginForbidden =
+ this._user.is_x_logged_in_remotely();
this._authPrompt.clear();
this._authPrompt.begin({ userName: answer });
this._updateCancelButton();
@@ -1017,6 +1019,8 @@ var LoginDialog = GObject.registerClass(
let answer = this._authPrompt.getAnswer();
let domain_answer = this._domainMenuButton.getDomainUser(answer);
this._user = this._userManager.get_user(domain_answer);
+ this._userLoginForbidden =
+ this._user.is_x_logged_in_remotely();
this._authPrompt.clear();
this._authPrompt.startSpinning();
this._authPrompt.begin({ userName: domain_answer});
@@ -1043,6 +1047,28 @@ var LoginDialog = GObject.registerClass(
--- gnome-shell-41.3.orig/js/gdm/loginDialog.js
+++ gnome-shell-41.3/js/gdm/loginDialog.js
@@ -1043,6 +1043,29 @@ var LoginDialog = GObject.registerClass(
}
_onSessionOpened(client, serviceName) {
+ if (this._user.is_x_logged_in_remotely()) {
+ this._authPrompt.setMessage(
+ if (this._user.get_num_sessions_anywhere() > 1) {
+ this._authPrompt.setMessage(null,
+ _('Sorry, you have to log out a previous session first. Multiple logins are not supported.'),
+ GdmUtil.MessageType.ERROR);
+ // TODO: The following logic relies on the unverified fact that
@ -60,6 +15,7 @@ Index: gnome-shell-41.2/js/gdm/loginDialog.js
+ // current handler. This might root from the interaction between
+ // greeter and verifier, both are external programs.
+ this._authPrompt.verificationStatus = AuthPrompt.AuthPromptStatus.VERIFIED_BUT_FORBIDDEN;
+ this._authPrompt.cancelButton.reactive = true;
+
+ // NOTE: Failed Attempts as references
+ //
@ -76,11 +32,3 @@ Index: gnome-shell-41.2/js/gdm/loginDialog.js
this._authPrompt.finish(() => this._startSession(serviceName));
}
@@ -1238,6 +1264,7 @@ var LoginDialog = GObject.registerClass(
_onUserListActivated(activatedItem) {
this._user = activatedItem.user;
+ this._userLoginForbidden = this._user.is_x_logged_in_remotely();
this._updateCancelButton();