Compare commits
10 Commits
135631b6ee
...
0ff8263233
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0ff8263233 | ||
|
|
aef0b3fcc1 | ||
|
|
1a7f2d3ed4 | ||
|
|
1f2460e574 | ||
|
|
7cb4b17170 | ||
|
|
839a17a1f6 | ||
|
|
120c57f1c0 | ||
|
|
544f698f9e | ||
|
|
19bb89117f | ||
|
|
d57d63b7ce |
30
CVE-2019-3820-1.patch
Normal file
30
CVE-2019-3820-1.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
From 362444c782d205cba63987bc5996c475bf056597 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||||
|
Date: Wed, 23 Jan 2019 23:55:12 +0100
|
||||||
|
Subject: [PATCH] panel: Don't allow opening hidden menus via keybindings
|
||||||
|
|
||||||
|
We shouldn't allow toggling menus that aren't supported by the
|
||||||
|
current session mode, but as indicators are hidden rather than
|
||||||
|
destroyed on mode switches, it is not enough to check for an
|
||||||
|
indicator's existence.
|
||||||
|
|
||||||
|
https://gitlab.gnome.org/GNOME/gnome-shell/issues/851
|
||||||
|
|
||||||
|
patch proved:
|
||||||
|
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=921490
|
||||||
|
|
||||||
|
diff --git a/js/ui/panel.js b/js/ui/panel.js
|
||||||
|
index 318ca52..414994f 100644
|
||||||
|
--- a/js/ui/panel.js
|
||||||
|
+++ b/js/ui/panel.js
|
||||||
|
@@ -996,8 +996,8 @@ var Panel = new Lang.Class({
|
||||||
|
},
|
||||||
|
|
||||||
|
_toggleMenu(indicator) {
|
||||||
|
- if (!indicator) // menu not supported by current session mode
|
||||||
|
- return;
|
||||||
|
+ if (!indicator || !indicator.container.visible)
|
||||||
|
+ return; // menu not supported by current session mode
|
||||||
|
|
||||||
|
let menu = indicator.menu;
|
||||||
|
if (!indicator.actor.reactive)
|
||||||
91
CVE-2019-3820-2.patch
Normal file
91
CVE-2019-3820-2.patch
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
From 74b372212f649984b79337c7118495be29cd4871 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ray Strode <rstrode@redhat.com>
|
||||||
|
Date: Wed, 23 Jan 2019 15:59:42 -0500
|
||||||
|
Subject: [PATCH] shellActionModes: disable POPUP keybindings in lock screen
|
||||||
|
|
||||||
|
Certain keybindings should continue to work even when a popup
|
||||||
|
menu is on screen. For instance, the keybinding for showing
|
||||||
|
the app menu and the keyinding for showing the calendar are
|
||||||
|
examples.
|
||||||
|
|
||||||
|
This is achieved by putting in place a special "POPUP" action
|
||||||
|
mode, whenever a popup menu is active. This mode replaces
|
||||||
|
the (e.g., "NORMAL" or "OVERVIEW") action mode that was in place
|
||||||
|
for as long as the popup menu is active.
|
||||||
|
|
||||||
|
But those keybindings should not work when the user is at the
|
||||||
|
unlock dialog (which uses an action mode of "UNLOCK").
|
||||||
|
|
||||||
|
Unfortunately, right now they do.
|
||||||
|
|
||||||
|
This commit addresses the problem by using a compound action
|
||||||
|
mode when a popup menu is open at the unlock dialog (the bitwise
|
||||||
|
OR of POPUP and UNLOCK).
|
||||||
|
|
||||||
|
Closes https://gitlab.gnome.org/GNOME/gnome-shell/issues/851
|
||||||
|
|
||||||
|
patch proved:
|
||||||
|
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=921490
|
||||||
|
|
||||||
|
diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js
|
||||||
|
index a6a0374..ac441b1 100644
|
||||||
|
--- a/js/gdm/authPrompt.js
|
||||||
|
+++ b/js/gdm/authPrompt.js
|
||||||
|
@@ -11,6 +11,7 @@ const Animation = imports.ui.animation;
|
||||||
|
const Batch = imports.gdm.batch;
|
||||||
|
const GdmUtil = imports.gdm.util;
|
||||||
|
const Params = imports.misc.params;
|
||||||
|
+const Shell = imports.gi.Shell;
|
||||||
|
const ShellEntry = imports.ui.shellEntry;
|
||||||
|
const Tweener = imports.ui.tweener;
|
||||||
|
const UserWidget = imports.ui.userWidget;
|
||||||
|
@@ -99,7 +100,7 @@ var AuthPrompt = new Lang.Class({
|
||||||
|
x_align: St.Align.START });
|
||||||
|
this._entry = new St.Entry({ style_class: 'login-dialog-prompt-entry',
|
||||||
|
can_focus: true });
|
||||||
|
- ShellEntry.addContextMenu(this._entry, { isPassword: true });
|
||||||
|
+ ShellEntry.addContextMenu(this._entry, { isPassword: true, actionMode: Shell.ActionMode.NONE });
|
||||||
|
|
||||||
|
this.actor.add(this._entry,
|
||||||
|
{ expand: true,
|
||||||
|
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
|
||||||
|
index 2f89140..1bf8d6f 100644
|
||||||
|
--- a/js/gdm/loginDialog.js
|
||||||
|
+++ b/js/gdm/loginDialog.js
|
||||||
|
@@ -342,7 +342,8 @@ var SessionMenuButton = new Lang.Class({
|
||||||
|
this._button.remove_style_pseudo_class('active');
|
||||||
|
});
|
||||||
|
|
||||||
|
- this._manager = new PopupMenu.PopupMenuManager({ actor: this._button });
|
||||||
|
+ this._manager = new PopupMenu.PopupMenuManager({ actor: this._button },
|
||||||
|
+ { actionMode: Shell.ActionMode.NONE });
|
||||||
|
this._manager.addMenu(this._menu);
|
||||||
|
|
||||||
|
this._button.connect('clicked', () => { this._menu.toggle(); });
|
||||||
|
diff --git a/js/ui/shellEntry.js b/js/ui/shellEntry.js
|
||||||
|
index 9db5136..09bb9bb 100644
|
||||||
|
--- a/js/ui/shellEntry.js
|
||||||
|
+++ b/js/ui/shellEntry.js
|
||||||
|
@@ -9,6 +9,7 @@ const BoxPointer = imports.ui.boxpointer;
|
||||||
|
const Main = imports.ui.main;
|
||||||
|
const Params = imports.misc.params;
|
||||||
|
const PopupMenu = imports.ui.popupMenu;
|
||||||
|
+const Shell = imports.gi.Shell;
|
||||||
|
|
||||||
|
var EntryMenu = new Lang.Class({
|
||||||
|
Name: 'ShellEntryMenu',
|
||||||
|
@@ -150,11 +151,12 @@ function addContextMenu(entry, params) {
|
||||||
|
if (entry.menu)
|
||||||
|
return;
|
||||||
|
|
||||||
|
- params = Params.parse (params, { isPassword: false });
|
||||||
|
+ params = Params.parse (params, { isPassword: false, actionMode: Shell.ActionMode.POPUP });
|
||||||
|
|
||||||
|
entry.menu = new EntryMenu(entry);
|
||||||
|
entry.menu.isPassword = params.isPassword;
|
||||||
|
- entry._menuManager = new PopupMenu.PopupMenuManager({ actor: entry });
|
||||||
|
+ entry._menuManager = new PopupMenu.PopupMenuManager({ actor: entry },
|
||||||
|
+ { actionMode: params.actionMode });
|
||||||
|
entry._menuManager.addMenu(entry.menu);
|
||||||
|
|
||||||
|
// Add an event handler to both the entry and its clutter_text; the former
|
||||||
265
CVE-2020-17489-pre1.patch
Normal file
265
CVE-2020-17489-pre1.patch
Normal file
@ -0,0 +1,265 @@
|
|||||||
|
From e2f0647091b2475f78c0a52c0acef5f1be4d52d9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: rpm-build <rpm-build>
|
||||||
|
Date: Tue, 30 Mar 2021 14:42:11 +0800
|
||||||
|
Subject: [PATCH] cleanup: Use arrow functions for tweener callbacks
|
||||||
|
|
||||||
|
While it is legal to use method syntax for the function properties
|
||||||
|
here, arrow notation is less unexpected and allows us to drop the
|
||||||
|
separate scope properties.
|
||||||
|
|
||||||
|
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/608
|
||||||
|
|
||||||
|
---
|
||||||
|
js/gdm/authPrompt.js | 3 +--
|
||||||
|
js/gdm/loginDialog.js | 16 ++++++----------
|
||||||
|
js/ui/dnd.js | 5 ++---
|
||||||
|
js/ui/messageList.js | 3 +--
|
||||||
|
js/ui/panel.js | 8 +++-----
|
||||||
|
js/ui/popupMenu.js | 12 ++++--------
|
||||||
|
js/ui/screenShield.js | 15 ++++++---------
|
||||||
|
js/ui/workspaceSwitcherPopup.js | 3 +--
|
||||||
|
js/ui/workspaceThumbnail.js | 5 ++---
|
||||||
|
9 files changed, 26 insertions(+), 44 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js
|
||||||
|
index a0a4a21..a6a0374 100644
|
||||||
|
--- a/js/gdm/authPrompt.js
|
||||||
|
+++ b/js/gdm/authPrompt.js
|
||||||
|
@@ -302,8 +302,7 @@ var AuthPrompt = new Lang.Class({
|
||||||
|
time: DEFAULT_BUTTON_WELL_ANIMATION_TIME,
|
||||||
|
delay: DEFAULT_BUTTON_WELL_ANIMATION_DELAY,
|
||||||
|
transition: 'linear',
|
||||||
|
- onCompleteScope: this,
|
||||||
|
- onComplete() {
|
||||||
|
+ onComplete: () => {
|
||||||
|
if (wasSpinner) {
|
||||||
|
if (this._spinner)
|
||||||
|
this._spinner.stop();
|
||||||
|
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
|
||||||
|
index bf79677..0e0001f 100644
|
||||||
|
--- a/js/gdm/loginDialog.js
|
||||||
|
+++ b/js/gdm/loginDialog.js
|
||||||
|
@@ -926,7 +926,7 @@ var LoginDialog = new Lang.Class({
|
||||||
|
{ opacity: 255,
|
||||||
|
time: _FADE_ANIMATION_TIME,
|
||||||
|
transition: 'easeOutQuad',
|
||||||
|
- onUpdate() {
|
||||||
|
+ onUpdate: () => {
|
||||||
|
let children = Main.layoutManager.uiGroup.get_children();
|
||||||
|
|
||||||
|
for (let i = 0; i < children.length; i++) {
|
||||||
|
@@ -934,12 +934,10 @@ var LoginDialog = new Lang.Class({
|
||||||
|
children[i].opacity = this.actor.opacity;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
- onUpdateScope: this,
|
||||||
|
- onComplete() {
|
||||||
|
+ onComplete: () => {
|
||||||
|
if (this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
|
||||||
|
this._authPrompt.reset();
|
||||||
|
- },
|
||||||
|
- onCompleteScope: this });
|
||||||
|
+ } });
|
||||||
|
},
|
||||||
|
|
||||||
|
_gotGreeterSessionProxy(proxy) {
|
||||||
|
@@ -956,7 +954,7 @@ var LoginDialog = new Lang.Class({
|
||||||
|
{ opacity: 0,
|
||||||
|
time: _FADE_ANIMATION_TIME,
|
||||||
|
transition: 'easeOutQuad',
|
||||||
|
- onUpdate() {
|
||||||
|
+ onUpdate: () => {
|
||||||
|
let children = Main.layoutManager.uiGroup.get_children();
|
||||||
|
|
||||||
|
for (let i = 0; i < children.length; i++) {
|
||||||
|
@@ -964,11 +962,9 @@ var LoginDialog = new Lang.Class({
|
||||||
|
children[i].opacity = this.actor.opacity;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
- onUpdateScope: this,
|
||||||
|
- onComplete() {
|
||||||
|
+ onComplete: () => {
|
||||||
|
this._greeter.call_start_session_when_ready_sync(serviceName, true, null);
|
||||||
|
- },
|
||||||
|
- onCompleteScope: this });
|
||||||
|
+ } });
|
||||||
|
},
|
||||||
|
|
||||||
|
_onSessionOpened(client, serviceName) {
|
||||||
|
diff --git a/js/ui/dnd.js b/js/ui/dnd.js
|
||||||
|
index 8483e89..83778e0 100644
|
||||||
|
--- a/js/ui/dnd.js
|
||||||
|
+++ b/js/ui/dnd.js
|
||||||
|
@@ -385,14 +385,13 @@ var _Draggable = new Lang.Class({
|
||||||
|
scale_y: scale * origScale,
|
||||||
|
time: SCALE_ANIMATION_TIME,
|
||||||
|
transition: 'easeOutQuad',
|
||||||
|
- onUpdate() {
|
||||||
|
+ onUpdate: () => {
|
||||||
|
let currentScale = this._dragActor.scale_x / origScale;
|
||||||
|
this._dragOffsetX = currentScale * origDragOffsetX;
|
||||||
|
this._dragOffsetY = currentScale * origDragOffsetY;
|
||||||
|
this._dragActor.set_position(this._dragX + this._dragOffsetX,
|
||||||
|
this._dragY + this._dragOffsetY);
|
||||||
|
- },
|
||||||
|
- onUpdateScope: this });
|
||||||
|
+ } });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
diff --git a/js/ui/messageList.js b/js/ui/messageList.js
|
||||||
|
index 547135a..91670ba 100644
|
||||||
|
--- a/js/ui/messageList.js
|
||||||
|
+++ b/js/ui/messageList.js
|
||||||
|
@@ -483,8 +483,7 @@ var Message = new Lang.Class({
|
||||||
|
{ scale_y: 0,
|
||||||
|
time: MessageTray.ANIMATION_TIME,
|
||||||
|
transition: 'easeOutQuad',
|
||||||
|
- onCompleteScope: this,
|
||||||
|
- onComplete() {
|
||||||
|
+ onComplete: () => {
|
||||||
|
this._actionBin.hide();
|
||||||
|
this.expanded = false;
|
||||||
|
}});
|
||||||
|
diff --git a/js/ui/panel.js b/js/ui/panel.js
|
||||||
|
index 3726b84..318ca52 100644
|
||||||
|
--- a/js/ui/panel.js
|
||||||
|
+++ b/js/ui/panel.js
|
||||||
|
@@ -174,10 +174,9 @@ var AppMenuButton = new Lang.Class({
|
||||||
|
{ opacity: 0,
|
||||||
|
time: Overview.ANIMATION_TIME,
|
||||||
|
transition: 'easeOutQuad',
|
||||||
|
- onComplete() {
|
||||||
|
+ onComplete: () => {
|
||||||
|
this.actor.hide();
|
||||||
|
- },
|
||||||
|
- onCompleteScope: this });
|
||||||
|
+ } });
|
||||||
|
},
|
||||||
|
|
||||||
|
_onStyleChanged(actor) {
|
||||||
|
@@ -219,8 +218,7 @@ var AppMenuButton = new Lang.Class({
|
||||||
|
{ opacity: 0,
|
||||||
|
time: SPINNER_ANIMATION_TIME,
|
||||||
|
transition: "easeOutQuad",
|
||||||
|
- onCompleteScope: this,
|
||||||
|
- onComplete() {
|
||||||
|
+ onComplete: () => {
|
||||||
|
this._spinner.stop();
|
||||||
|
this._spinner.actor.opacity = 255;
|
||||||
|
this._spinner.actor.hide();
|
||||||
|
diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js
|
||||||
|
index f449d6e..3d92a1a 100644
|
||||||
|
--- a/js/ui/popupMenu.js
|
||||||
|
+++ b/js/ui/popupMenu.js
|
||||||
|
@@ -1004,12 +1004,10 @@ var PopupSubMenu = new Lang.Class({
|
||||||
|
{ _arrowRotation: targetAngle,
|
||||||
|
height: naturalHeight,
|
||||||
|
time: 0.25,
|
||||||
|
- onUpdateScope: this,
|
||||||
|
- onUpdate() {
|
||||||
|
+ onUpdate: () => {
|
||||||
|
this._arrow.rotation_angle_z = this.actor._arrowRotation;
|
||||||
|
},
|
||||||
|
- onCompleteScope: this,
|
||||||
|
- onComplete() {
|
||||||
|
+ onComplete: () => {
|
||||||
|
this.actor.set_height(-1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
@@ -1037,12 +1035,10 @@ var PopupSubMenu = new Lang.Class({
|
||||||
|
{ _arrowRotation: 0,
|
||||||
|
height: 0,
|
||||||
|
time: 0.25,
|
||||||
|
- onUpdateScope: this,
|
||||||
|
- onUpdate() {
|
||||||
|
+ onUpdate: () => {
|
||||||
|
this._arrow.rotation_angle_z = this.actor._arrowRotation;
|
||||||
|
},
|
||||||
|
- onCompleteScope: this,
|
||||||
|
- onComplete() {
|
||||||
|
+ onComplete: () => {
|
||||||
|
this.actor.hide();
|
||||||
|
this.actor.set_height(-1);
|
||||||
|
},
|
||||||
|
diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js
|
||||||
|
index dee290b..72d1317 100644
|
||||||
|
--- a/js/ui/screenShield.js
|
||||||
|
+++ b/js/ui/screenShield.js
|
||||||
|
@@ -265,11 +265,10 @@ var NotificationsBox = new Lang.Class({
|
||||||
|
{ height: natHeight,
|
||||||
|
transition: 'easeOutQuad',
|
||||||
|
time: 0.25,
|
||||||
|
- onComplete() {
|
||||||
|
+ onComplete: () => {
|
||||||
|
this._scrollView.vscrollbar_policy = Gtk.PolicyType.AUTOMATIC;
|
||||||
|
widget.set_height(-1);
|
||||||
|
- },
|
||||||
|
- onCompleteScope: this
|
||||||
|
+ }
|
||||||
|
});
|
||||||
|
|
||||||
|
this._updateVisibility();
|
||||||
|
@@ -795,11 +794,10 @@ var ScreenShield = new Lang.Class({
|
||||||
|
{ y: 0,
|
||||||
|
time: time,
|
||||||
|
transition: 'easeInQuad',
|
||||||
|
- onComplete() {
|
||||||
|
+ onComplete: () => {
|
||||||
|
this._lockScreenGroup.fixed_position_set = false;
|
||||||
|
this._lockScreenState = MessageTray.State.SHOWN;
|
||||||
|
- },
|
||||||
|
- onCompleteScope: this,
|
||||||
|
+ }
|
||||||
|
});
|
||||||
|
|
||||||
|
this._maybeCancelDialog();
|
||||||
|
@@ -1020,11 +1018,10 @@ var ScreenShield = new Lang.Class({
|
||||||
|
{ y: 0,
|
||||||
|
time: MANUAL_FADE_TIME,
|
||||||
|
transition: 'easeOutQuad',
|
||||||
|
- onComplete() {
|
||||||
|
+ onComplete: () => {
|
||||||
|
this._lockScreenShown({ fadeToBlack: fadeToBlack,
|
||||||
|
animateFade: true });
|
||||||
|
- },
|
||||||
|
- onCompleteScope: this
|
||||||
|
+ }
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this._lockScreenGroup.fixed_position_set = false;
|
||||||
|
diff --git a/js/ui/workspaceSwitcherPopup.js b/js/ui/workspaceSwitcherPopup.js
|
||||||
|
index 351a907..49caabc 100644
|
||||||
|
--- a/js/ui/workspaceSwitcherPopup.js
|
||||||
|
+++ b/js/ui/workspaceSwitcherPopup.js
|
||||||
|
@@ -159,8 +159,7 @@ var WorkspaceSwitcherPopup = new Lang.Class({
|
||||||
|
Tweener.addTween(this._container, { opacity: 0.0,
|
||||||
|
time: ANIMATION_TIME,
|
||||||
|
transition: 'easeOutQuad',
|
||||||
|
- onComplete() { this.destroy(); },
|
||||||
|
- onCompleteScope: this
|
||||||
|
+ onComplete: () => this.destroy()
|
||||||
|
});
|
||||||
|
return GLib.SOURCE_REMOVE;
|
||||||
|
},
|
||||||
|
diff --git a/js/ui/workspaceThumbnail.js b/js/ui/workspaceThumbnail.js
|
||||||
|
index 76a7416..dc1a749 100644
|
||||||
|
--- a/js/ui/workspaceThumbnail.js
|
||||||
|
+++ b/js/ui/workspaceThumbnail.js
|
||||||
|
@@ -1347,11 +1347,10 @@ var ThumbnailsBox = new Lang.Class({
|
||||||
|
{ indicatorY: thumbnail.actor.allocation.y1,
|
||||||
|
time: WorkspacesView.WORKSPACE_SWITCH_TIME,
|
||||||
|
transition: 'easeOutQuad',
|
||||||
|
- onComplete() {
|
||||||
|
+ onComplete: () => {
|
||||||
|
this._animatingIndicator = false;
|
||||||
|
this._queueUpdateStates();
|
||||||
|
- },
|
||||||
|
- onCompleteScope: this
|
||||||
|
+ }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
|
|
||||||
81
CVE-2020-17489-pre2.patch
Normal file
81
CVE-2020-17489-pre2.patch
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
From 7e4e3c19d010b8204f89703706c605a97153a60a Mon Sep 17 00:00:00 2001
|
||||||
|
From: rpm-build <rpm-build>
|
||||||
|
Date: Tue, 30 Mar 2021 14:56:46 +0800
|
||||||
|
Subject: [PATCH] loginDialog: Use GObject bindings over onUpdate handler
|
||||||
|
|
||||||
|
Instead of iterating over all actors each frame and sync'ing their
|
||||||
|
opacities, we can set up bindings once before the animation.
|
||||||
|
|
||||||
|
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/654
|
||||||
|
---
|
||||||
|
js/gdm/loginDialog.js | 30 ++++++++++++++----------------
|
||||||
|
1 file changed, 14 insertions(+), 16 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
|
||||||
|
index faecff8..29954f7 100644
|
||||||
|
--- a/js/gdm/loginDialog.js
|
||||||
|
+++ b/js/gdm/loginDialog.js
|
||||||
|
@@ -918,25 +918,29 @@ var LoginDialog = new Lang.Class({
|
||||||
|
this._showPrompt();
|
||||||
|
},
|
||||||
|
|
||||||
|
+ _bindOpacity() {
|
||||||
|
+ this._bindings = Main.layoutManager.uiGroup.get_children()
|
||||||
|
+ .filter(c => c != Main.layoutManager.screenShieldGroup)
|
||||||
|
+ .map(c => this.actor.bind_property('opacity', c, 'opacity', 0));
|
||||||
|
+ },
|
||||||
|
+
|
||||||
|
+ _unbindOpacity() {
|
||||||
|
+ this._bindings.forEach(b => b.unbind());
|
||||||
|
+ },
|
||||||
|
+
|
||||||
|
_loginScreenSessionActivated() {
|
||||||
|
if (this.actor.opacity == 255 && this._authPrompt.verificationStatus == AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
|
||||||
|
return;
|
||||||
|
|
||||||
|
+ this._bindOpacity();
|
||||||
|
Tweener.addTween(this.actor,
|
||||||
|
{ opacity: 255,
|
||||||
|
time: _FADE_ANIMATION_TIME,
|
||||||
|
transition: 'easeOutQuad',
|
||||||
|
- onUpdate: () => {
|
||||||
|
- let children = Main.layoutManager.uiGroup.get_children();
|
||||||
|
-
|
||||||
|
- for (let i = 0; i < children.length; i++) {
|
||||||
|
- if (children[i] != Main.layoutManager.screenShieldGroup)
|
||||||
|
- children[i].opacity = this.actor.opacity;
|
||||||
|
- }
|
||||||
|
- },
|
||||||
|
onComplete: () => {
|
||||||
|
if (this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
|
||||||
|
this._authPrompt.reset();
|
||||||
|
+ this._unbindOpacity();
|
||||||
|
} });
|
||||||
|
},
|
||||||
|
|
||||||
|
@@ -950,20 +954,14 @@ var LoginDialog = new Lang.Class({
|
||||||
|
},
|
||||||
|
|
||||||
|
_startSession(serviceName) {
|
||||||
|
+ this._bindOpacity();
|
||||||
|
Tweener.addTween(this.actor,
|
||||||
|
{ opacity: 0,
|
||||||
|
time: _FADE_ANIMATION_TIME,
|
||||||
|
transition: 'easeOutQuad',
|
||||||
|
- onUpdate: () => {
|
||||||
|
- let children = Main.layoutManager.uiGroup.get_children();
|
||||||
|
-
|
||||||
|
- for (let i = 0; i < children.length; i++) {
|
||||||
|
- if (children[i] != Main.layoutManager.screenShieldGroup)
|
||||||
|
- children[i].opacity = this.actor.opacity;
|
||||||
|
- }
|
||||||
|
- },
|
||||||
|
onComplete: () => {
|
||||||
|
this._greeter.call_start_session_when_ready_sync(serviceName, true, null);
|
||||||
|
+ this._unbindOpacity();
|
||||||
|
} });
|
||||||
|
},
|
||||||
|
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
|
|
||||||
44
CVE-2020-17489.patch
Normal file
44
CVE-2020-17489.patch
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
From b0d6742bcdba59991fbf0b31c6c670db7939cfa7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: rpm-build <rpm-build>
|
||||||
|
Date: Tue, 30 Mar 2021 15:35:52 +0800
|
||||||
|
Subject: [PATCH] cleanup: Port GObject classes to JS6 classes
|
||||||
|
|
||||||
|
GJS added API for defining GObject classes with ES6 class syntax
|
||||||
|
last cycle, use it to port the remaining Lang.Class classes to
|
||||||
|
the new syntax.
|
||||||
|
|
||||||
|
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/361
|
||||||
|
|
||||||
|
---
|
||||||
|
js/gdm/loginDialog.js | 9 ++++-----
|
||||||
|
1 file changed, 4 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
|
||||||
|
index 29954f7..2f89140 100644
|
||||||
|
--- a/js/gdm/loginDialog.js
|
||||||
|
+++ b/js/gdm/loginDialog.js
|
||||||
|
@@ -931,17 +931,16 @@ var LoginDialog = new Lang.Class({
|
||||||
|
_loginScreenSessionActivated() {
|
||||||
|
if (this.actor.opacity == 255 && this._authPrompt.verificationStatus == AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
|
||||||
|
return;
|
||||||
|
+ if (this._authPrompt.verificationStatus !== AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
|
||||||
|
+ this._authPrompt.reset();
|
||||||
|
|
||||||
|
this._bindOpacity();
|
||||||
|
Tweener.addTween(this.actor,
|
||||||
|
{ opacity: 255,
|
||||||
|
time: _FADE_ANIMATION_TIME,
|
||||||
|
transition: 'easeOutQuad',
|
||||||
|
- onComplete: () => {
|
||||||
|
- if (this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
|
||||||
|
- this._authPrompt.reset();
|
||||||
|
- this._unbindOpacity();
|
||||||
|
- } });
|
||||||
|
+ onComplete: () => this._unbindOpacity(),
|
||||||
|
+ });
|
||||||
|
},
|
||||||
|
|
||||||
|
_gotGreeterSessionProxy(proxy) {
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
Name: gnome-shell
|
Name: gnome-shell
|
||||||
Version: 3.30.1
|
Version: 3.30.1
|
||||||
Release: 7
|
Release: 13
|
||||||
Summary: Core user interface functions for the GNOME 3 desktop
|
Summary: Core user interface functions for the GNOME 3 desktop
|
||||||
Group: User Interface/Desktops
|
Group: User Interface/Desktops
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
@ -12,6 +12,11 @@ Patch2: 0001-endSessionDialog-Immediately-add-buttons-to-the-dial.patch
|
|||||||
Patch3: 0002-endSessionDialog-Support-rebooting-into-the-bootload.patch
|
Patch3: 0002-endSessionDialog-Support-rebooting-into-the-bootload.patch
|
||||||
Patch4: 0001-keyboardManager-Avoid-idempotent-calls-to-meta_backe.patch
|
Patch4: 0001-keyboardManager-Avoid-idempotent-calls-to-meta_backe.patch
|
||||||
Patch5: 0001-Include-the-libcroco-sources-directly-under-src-st-c.patch
|
Patch5: 0001-Include-the-libcroco-sources-directly-under-src-st-c.patch
|
||||||
|
Patch6: CVE-2020-17489-pre1.patch
|
||||||
|
Patch7: CVE-2020-17489-pre2.patch
|
||||||
|
Patch8: CVE-2020-17489.patch
|
||||||
|
Patch9: CVE-2019-3820-1.patch
|
||||||
|
Patch10: CVE-2019-3820-2.patch
|
||||||
|
|
||||||
BuildRequires: meson git ibus-devel chrpath dbus-glib-devel desktop-file-utils
|
BuildRequires: meson git ibus-devel chrpath dbus-glib-devel desktop-file-utils
|
||||||
BuildRequires: evolution-data-server-devel gcr-devel gjs-devel glib2-devel
|
BuildRequires: evolution-data-server-devel gcr-devel gjs-devel glib2-devel
|
||||||
@ -25,7 +30,7 @@ Requires: gnome-desktop3 gobject-introspection gjs gtk3 libnma librsvg2
|
|||||||
Requires: json-glib mozilla-filesystem mutter upower polkit glib2
|
Requires: json-glib mozilla-filesystem mutter upower polkit glib2
|
||||||
Requires: gsettings-desktop-schemas gstreamer1 at-spi2-atk
|
Requires: gsettings-desktop-schemas gstreamer1 at-spi2-atk
|
||||||
Requires: ibus accountsservice-libs gdm control-center python3
|
Requires: ibus accountsservice-libs gdm control-center python3
|
||||||
Requires: switcheroo-control geoclue2 libgweather bolt
|
Requires: switcheroo-control geoclue2 libgweather bolt xdg-utils
|
||||||
|
|
||||||
Provides: desktop-notification-daemon
|
Provides: desktop-notification-daemon
|
||||||
|
|
||||||
@ -61,6 +66,14 @@ Help files for %{name}
|
|||||||
|
|
||||||
%find_lang %{name}
|
%find_lang %{name}
|
||||||
|
|
||||||
|
chrpath -d %{buildroot}%{_bindir}/%{name}
|
||||||
|
chrpath -d %{buildroot}%{_libdir}/%{name}/libgvc.so
|
||||||
|
chrpath -d %{buildroot}%{_libdir}/%{name}/libst-1.0.so
|
||||||
|
chrpath -d %{buildroot}%{_libdir}/%{name}/lib%{name}.so
|
||||||
|
chrpath -d %{buildroot}%{_libdir}/%{name}/lib%{name}-menu.so
|
||||||
|
mkdir -p %{buildroot}/etc/ld.so.conf.d
|
||||||
|
echo "%{_libdir}/%{name}" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf
|
||||||
|
echo "%{_libdir}/mutter" >> %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf
|
||||||
|
|
||||||
%check
|
%check
|
||||||
desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.desktop
|
desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.desktop
|
||||||
@ -116,11 +129,30 @@ glib-compile-schemas --allow-any-name %{_datadir}/glib-2.0/schemas &> /dev/null
|
|||||||
%dir %{_datadir}/GConf
|
%dir %{_datadir}/GConf
|
||||||
%dir %{_datadir}/GConf/gsettings
|
%dir %{_datadir}/GConf/gsettings
|
||||||
%{_datadir}/GConf/gsettings/gnome-shell-overrides.convert
|
%{_datadir}/GConf/gsettings/gnome-shell-overrides.convert
|
||||||
|
%config(noreplace) /etc/ld.so.conf.d/*
|
||||||
|
|
||||||
%files help
|
%files help
|
||||||
%{_mandir}/man1/%{name}.1.gz
|
%{_mandir}/man1/%{name}.1.gz
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Dec 01 2023 beta <beta@yfqm.date> - 3.30.1-13
|
||||||
|
- bugfix this.bind_property is not a function
|
||||||
|
|
||||||
|
* Mon Nov 27 2023 beta <beta@yfqm.date> - 3.30.1-12
|
||||||
|
- add mutter so path to /etc/ld.so.conf.d
|
||||||
|
|
||||||
|
* Thu Nov 09 2023 zhangxianting <zhangxianting@uniontech.com> - 3.30.1-11
|
||||||
|
- Remove rpath
|
||||||
|
|
||||||
|
* Tue Sep 28 2021 weijin deng <weijin.deng@turbolinux.com.cn> - 3.30.1-10
|
||||||
|
- fix CVE-2019-3820
|
||||||
|
|
||||||
|
* Tue Jul 27 2021 caodongxia<caodongxia@huawei.com> - 3.30.1-9
|
||||||
|
- add install require xdg-utils
|
||||||
|
|
||||||
|
* Tue Mar 30 2021 wangyue<wangyue92@huawei.com> - 3.30.1-8
|
||||||
|
- fix CVE-2020-17489
|
||||||
|
|
||||||
* Mon Dec 07 2020 wangxiao<wangxia65@huawei.com> -3.30.1-7
|
* Mon Dec 07 2020 wangxiao<wangxia65@huawei.com> -3.30.1-7
|
||||||
- delete libcroco requires
|
- delete libcroco requires
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user