diff --git a/aboutMenu.js b/aboutMenu.js
index 41e4542..6107730 100644
--- a/aboutMenu.js
+++ b/aboutMenu.js
@@ -20,7 +20,7 @@ const HostnameIface = ' \
';
const HostnameProxy = Gio.DBusProxy.makeProxyWrapper(HostnameIface);
-const AboutMenuButton = new Lang.Class({
+var AboutMenuButton = new Lang.Class({
Name: 'AboutMenuButton',
Extends: PanelMenu.Button,
_init: function() {
diff --git a/gnome-shell-app-workaround-pkexec.patch b/gnome-shell-app-workaround-pkexec.patch
new file mode 100644
index 0000000..d7af687
--- /dev/null
+++ b/gnome-shell-app-workaround-pkexec.patch
@@ -0,0 +1,57 @@
+From 053b8da89c5260351199d8c51821db1a2f91cdf4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Florian=20M=C3=BCllner?=
+Date: Sat, 25 Mar 2017 02:46:25 +0100
+Subject: app: Work around pkexec restriction when launching
+
+Unless automatic child reaping is disabled in GSpawnFlags, glib's
+g_spawn_* functions will reparent the spawned process to init by
+double-forking. Unfortunately pkexec bails out in this case[0],
+which means that it no longer works in .desktop files since the
+PID tracking removal in commit 01c6392c1373.
+Fix this by going back to manual child reaping.
+
+[0] https://cgit.freedesktop.org/polkit/tree/src/programs/pkexec.c#n728
+
+https://bugzilla.gnome.org/show_bug.cgi?id=763531
+---
+ src/shell-app.c | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/src/shell-app.c b/src/shell-app.c
+index b383d9c..335147c 100644
+--- a/src/shell-app.c
++++ b/src/shell-app.c
+@@ -1196,6 +1196,14 @@ app_child_setup (gpointer user_data)
+ }
+ #endif
+
++static void
++wait_pid (GDesktopAppInfo *appinfo,
++ GPid pid,
++ gpointer user_data)
++{
++ g_child_watch_add (pid, (GChildWatchFunc) g_spawn_close_pid, NULL);
++}
++
+ /**
+ * shell_app_launch:
+ * @timestamp: Event timestamp, or 0 for current event timestamp
+@@ -1234,13 +1242,13 @@ shell_app_launch (ShellApp *app,
+
+ ret = g_desktop_app_info_launch_uris_as_manager (app->info, NULL,
+ context,
+- G_SPAWN_SEARCH_PATH,
++ G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
+ #ifdef HAVE_SYSTEMD
+ app_child_setup, (gpointer)shell_app_get_id (app),
+ #else
+ NULL, NULL,
+ #endif
+- NULL, NULL,
++ wait_pid, NULL,
+ error);
+ g_object_unref (context);
+
+--
+cgit v0.12
+
diff --git a/gnome-shell-dateMenu-fixes.patch b/gnome-shell-dateMenu-fixes.patch
new file mode 100644
index 0000000..28c7829
--- /dev/null
+++ b/gnome-shell-dateMenu-fixes.patch
@@ -0,0 +1,147 @@
+From 56f4ce37cd52817a5fcba360dc5eec23d81656f0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Florian=20M=C3=BCllner?=
+Date: Fri, 8 Sep 2017 12:13:48 +0200
+Subject: dateMenu: Adjust to GWeather IAPI change
+
+It's not exactly clear what changed - gobject-introspection, gjs - but
+the newly added gweather_condition_to_string_full() API no longer works
+like it used to. The replacement code does look more idiomatic anyway,
+so just fix the code without investigating the reason of the breakage.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=787423
+---
+ js/ui/dateMenu.js | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/js/ui/dateMenu.js b/js/ui/dateMenu.js
+index 18f2f0e..0054f2d 100644
+--- a/js/ui/dateMenu.js
++++ b/js/ui/dateMenu.js
+@@ -237,12 +237,12 @@ var WeatherSection = new Lang.Class({
+ let options = capitalize ? GWeather.FormatOptions.SENTENCE_CAPITALIZATION
+ : GWeather.FormatOptions.NO_CAPITALIZATION;
+
+- let [ok, phenom, qualifier] = info.get_value_conditions();
++ let [ok, phenomenon, qualifier] = info.get_value_conditions();
+ if (ok)
+- return GWeather.conditions_to_string_full(phenom, qualifier, options);
++ return new GWeather.Conditions({ phenomenon, qualifier}).to_string_full(options);
+
+ let [, sky] = info.get_value_sky();
+- return GWeather.sky_to_string_full(sky, options);
++ return GWeather.Sky.to_string_full(sky, options);
+ },
+
+ _sameSummary: function(info1, info2) {
+--
+cgit v0.12
+
+
+From bddc2c0016878c8eb629d6d4b7c0f2f38353377a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Florian=20M=C3=BCllner?=
+Date: Tue, 12 Sep 2017 12:33:37 +0200
+Subject: dateMenu: Use icon for message indicator
+
+Using a unicode character here means it may look quite different
+from the intended style (for instance with emoji fonts). Avoid
+this by providing a custom icon and use that instead.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=766368
+---
+ data/gnome-shell-theme.gresource.xml | 1 +
+ data/theme/message-indicator-symbolic.svg | 40 +++++++++++++++++++++++++++++++
+ js/ui/dateMenu.js | 6 +++--
+ js/ui/main.js | 1 +
+ 4 files changed, 46 insertions(+), 2 deletions(-)
+ create mode 100644 data/theme/message-indicator-symbolic.svg
+
+diff --git a/data/gnome-shell-theme.gresource.xml b/data/gnome-shell-theme.gresource.xml
+index 25769a4..896a1e2 100644
+--- a/data/gnome-shell-theme.gresource.xml
++++ b/data/gnome-shell-theme.gresource.xml
+@@ -18,6 +18,7 @@
+ gnome-shell.css
+ gnome-shell-high-contrast.css
+ logged-in-indicator.svg
++ message-indicator-symbolic.svg
+ no-events.svg
+ no-notifications.svg
+ noise-texture.png
+diff --git a/data/theme/message-indicator-symbolic.svg b/data/theme/message-indicator-symbolic.svg
+new file mode 100644
+index 0000000..257a984
+--- /dev/null
++++ b/data/theme/message-indicator-symbolic.svg
+@@ -0,0 +1,40 @@
++
++
++
++
+diff --git a/js/ui/dateMenu.js b/js/ui/dateMenu.js
+index 0054f2d..0aad37e 100644
+--- a/js/ui/dateMenu.js
++++ b/js/ui/dateMenu.js
+@@ -337,8 +337,10 @@ var MessagesIndicator = new Lang.Class({
+ Name: 'MessagesIndicator',
+
+ _init: function() {
+- this.actor = new St.Label({ text: '⚫', visible: false, y_expand: true,
+- y_align: Clutter.ActorAlign.CENTER });
++ this.actor = new St.Icon({ icon_name: 'message-indicator-symbolic',
++ icon_size: 16,
++ visible: false, y_expand: true,
++ y_align: Clutter.ActorAlign.CENTER });
+
+ this._sources = [];
+
+diff --git a/js/ui/main.js b/js/ui/main.js
+index 85dbe1f..e981db9 100644
+--- a/js/ui/main.js
++++ b/js/ui/main.js
+@@ -122,6 +122,7 @@ function start() {
+ sessionMode.connect('updated', _sessionUpdated);
+ Gtk.Settings.get_default().connect('notify::gtk-theme-name',
+ _loadDefaultStylesheet);
++ Gtk.IconTheme.get_default().add_resource_path('/org/gnome/shell/theme/icons');
+ _initializeUI();
+
+ shellAccessDialogDBusService = new AccessDialog.AccessDialogDBus();
+--
+cgit v0.12
+
diff --git a/gnome-shell-domain.patch b/gnome-shell-domain.patch
index 03d0b0d..458210b 100644
--- a/gnome-shell-domain.patch
+++ b/gnome-shell-domain.patch
@@ -46,7 +46,7 @@ Index: gnome-shell-3.26.0/js/gdm/domain.js
+ ERR : 5
+};
+
-+const DomainMenuButton = new Lang.Class({
++var DomainMenuButton = new Lang.Class({
+ Name: 'DomainMenuButton',
+
+ _init: function () {
diff --git a/gnome-shell-fix-crash-hint-actor-NULL.patch b/gnome-shell-fix-crash-hint-actor-NULL.patch
new file mode 100644
index 0000000..9b5a9ed
--- /dev/null
+++ b/gnome-shell-fix-crash-hint-actor-NULL.patch
@@ -0,0 +1,28 @@
+From 5ec0ad4e9cf8a88e3a715fdef4bf1f227b274d2d Mon Sep 17 00:00:00 2001
+From: Marc-Antoine Perennou
+Date: Tue, 12 Sep 2017 12:23:46 +0200
+Subject: StEntry: fix crash when hint actor is NULL
+
+https://bugzilla.gnome.org/show_bug.cgi?id=787580
+
+Signed-off-by: Marc-Antoine Perennou
+---
+ src/st/st-entry.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/st/st-entry.c b/src/st/st-entry.c
+index fc9ffbf..18e6a25 100644
+--- a/src/st/st-entry.c
++++ b/src/st/st-entry.c
+@@ -1106,7 +1106,7 @@ st_entry_get_text (StEntry *entry)
+ g_return_val_if_fail (ST_IS_ENTRY (entry), NULL);
+
+ priv = st_entry_get_instance_private (entry);
+- if (clutter_actor_is_visible (priv->hint_actor))
++ if (priv->hint_actor != NULL && clutter_actor_is_visible (priv->hint_actor))
+ return "";
+ else
+ return clutter_text_get_text (CLUTTER_TEXT (priv->entry));
+--
+cgit v0.12
+
diff --git a/gnome-shell.changes b/gnome-shell.changes
index e3510f3..375f415 100644
--- a/gnome-shell.changes
+++ b/gnome-shell.changes
@@ -1,3 +1,21 @@
+-------------------------------------------------------------------
+Mon Sep 18 07:31:56 UTC 2017 - xwang@suse.com
+
+- Fix JS warning, define classes with 'var' instead of 'const'
+ (bgo#785084)
+ + Update aboutMenu.js
+ + Update gnome-shell-domain.patch
+
+-------------------------------------------------------------------
+Fri Sep 15 07:34:30 UTC 2017 - zaitor@opensuse.org
+
+- Add gnome-shell-app-workaround-pkexec.patch: app: Work around
+ pkexec restriction when launching (bgo#763531).
+- Add gnome-shell-dateMenu-fixes.patch: Fix gnome-weather and
+ notification icon (bgo#787423, bgo#766368).
+- Add gnome-shell-fix-crash-hint-actor-NULL.patch: StEntry: fix
+ crash when hint actor is NULL (bgo#787580).
+
-------------------------------------------------------------------
Wed Sep 13 02:39:59 UTC 2017 - xwang@suse.com
diff --git a/gnome-shell.spec b/gnome-shell.spec
index a0aa308..3293221 100644
--- a/gnome-shell.spec
+++ b/gnome-shell.spec
@@ -53,6 +53,12 @@ Patch9: gnome-shell-lock-bg-on-primary.patch
Patch11: gs-fate318433-prevent-same-account-multi-logins.patch
# PATCH-FEATURE-SLE gnome-shell-1007468-lock-screen-SUSE-logo-missing.patch xwang@suse.com -- Add SUSE logo on lock screen for GNOME theme.
Patch15: gnome-shell-1007468-lock-screen-SUSE-logo-missing.patch
+# PATCH-FIX-UPSTREAM gnome-shell-app-workaround-pkexec.patch bgo#763531 zaitor@opensuse.org -- app: Work around pkexec restriction when launching
+Patch16: gnome-shell-app-workaround-pkexec.patch
+# PATCH-FIX-UPSTREAM gnome-shell-dateMenu-fixes.patch bgo#787423 bgo#766368 zaitor@opensuse.org -- Fix gnome-weather and notification icon
+Patch17: gnome-shell-dateMenu-fixes.patch
+# PATCH-FIX-UPSTREAM gnome-shell-fix-crash-hint-actor-NULL.patch bgo#787580 zaitor@opensuse.org -- StEntry: fix crash when hint actor is NULL
+Patch18: gnome-shell-fix-crash-hint-actor-NULL.patch
## NOTE: Keep SLE Classic patches at bottom.
# PATCH-FEATURE-SLE gs-sle-classic-ext.patch bnc#862615 cxiong@suse.com -- add SLE Classic support
Patch1000: gs-sle-classic-ext.patch
@@ -192,6 +198,9 @@ into GNOME Shell calendar.
%patch11 -p1
%patch15 -p1
%endif
+%patch16 -p1
+%patch17 -p1
+%patch18 -p1
%if !0%{?is_opensuse}
%patch1000 -p1