Package: release.debian.org
Severity: normal
Tags: bookworm
User: release.debian....@packages.debian.org
Usertags: pu
X-Debbugs-Cc: gnome-sh...@packages.debian.org
Control: affects -1 + src:gnome-shell
Control: block -1 by 1036856

The gnome-shell 43.5 release from GNOME upstream seems like something
we should have in a bookworm update. I don't think it's urgent enough
to break the full freeze for.

This could be converted into an unblock request if the release team or
other GNOME team members want to break full freeze for this.

This requires mutter 43.5, for which see #1036856.

[ Reason ]
New upstream stable release

[ Impact ]
If not accepted, our default desktop will have several known bugs.

[ Tests ]
Manual testing: I'm running this version on my main laptop and gaming PC.

[ Risks ]
There's the potential for regressions of similar magnitude to what we're
fixing. GNOME is our default desktop, so any regressions will be highly
visible; I'd like to mitigate this by getting some wider real-world testing
in unstable during the closing stages of the freeze.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [ ] the issue is verified as fixed in unstable

[ Changes ]
js/misc/objectManager.js:
    - Receive notifications of removed objects from D-Bus ObjectManager
      instances correctly (gnome-shell!2730).
      This is utility code used in multiple places, I don't know what
      user-visible impact this has.

js/ui/appDisplay.js:
    - Fix an assertion failure during shutdown (gnome-shell#6512)

js/ui/components/autorunManager.js:
    - Fix a regression in 43~beta involving detection of hotplugged media
      with autorunnable content (gnome-shell!2745)

js/ui/dash.js:
    - Avoid destroying labels twice, most commonly when using
      gnome-shell-extension-dash-to-dock (gnome-shell!2739)

js/ui/messageTray.js:
    - Fix queued notifications getting into a state where they can no
      longer be removed (gnome-shell!2736)

js/ui/modalDialog.js:
    - After 60 second timeout in logout/reboot/poweroff confirmation
      dialog, do the requested action instead of leaving the Shell in a
      broken state (gnome-shell#6506)

js/ui/panelMenu.js:
    - Avoid keyboard navigation focus getting stuck on top bar buttons with
      no associated menu (gnome-shell!2734; does not solve #1032319 but is
      helpful when working around it)

js/ui/screenshot.js (first hunk), d/control.in:
    - Fix a regression in which the cursor would not be included in
      screenshots since mutter 43.1 (gnome-shell!2710).
      This needs mutter 43.5; strictly speaking it isn't a required
      dependency, but if mutter is too old then the regression won't
      be fixed, so to simplify things I made it a dependency.

js/ui/screenshot.js (second and third hunks):
    - Fix a cursor appearing at 0,0 in screenshots that should not
      include it (gnome-shell!2702)

js/ui/search.js:
    - Make search results fill unused space as intended (gnome-shell#5924)

js/ui/status/location.js:
    - Fix an assertion failure if Geoclue isn't D-Bus-activatable
      (gnome-shell!2689)

js/ui/windowPreview.js:
    - Fix assertion failures after a window preview is destroyed
      (gnome-shell#5512, gnome-shell#6065)

js/ui/workspacesView.js:
    - Update visibility of workspaces in workspace switcher when required
      (gnome-shell#6519)

src/shell-app-system.c:
    - Improve matching of app StartupWMClass to a .desktop file, giving
      priority to apps that were not hidden by OnlyShowIn under the current
      desktop environment, in particular preferring gnome-system-monitor's
      non-KDE-specific .desktop file while running GNOME (gnome-shell!2721)

[ Other info ]
I have not uploaded to unstable due to the full freeze, and I can't
upload to experimental because GNOME 44 is already there.

May I upload this to unstable as 43.5-1 to get it some more testing,
on the understanding that if there is an unforeseen urgent change
to mutter, these fixes can either be included with it or avoided by
using t-p-u?  If I do that, presumably the upload to bookworm would
become 43.5-1~deb12u1.

The attached diff is between patched trees, excluding the patches
themselves to avoid duplicating the changes, and is lightly filtered to
ignore translations (very verbose) and upstream CI stuff (not used or
relevant in Debian). I normally upload using dgit, so if I'm the uploader,
the uploaded .dsc will be checked for an exact match to what's in git.
git diff patch-queue/43.4.. | filterdiff -p1 -x'debian/patches/*.patch' -x.gitlab-ci.yml -x'.gitlab-ci/*' -x'po/*.po'

diff --git a/NEWS b/NEWS
index d20f27985..16c30eea1 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,21 @@
+43.5
+====
+* Fix window screenshots with pointer [Ivan; !2710, !2702]
+* Fix notifications getting stuck indefinitely [msizanoen1; !2736]
+* Fix keynav of menu-less buttons [Florian; !2734]
+* Fix corner cases when matching apps on StartupWmClass [Marco; !2721]
+* Fix occasional misalignment of search results [Sebastian; !2744]
+* Fix regression in content-type sniffing on autorun [Balló; !2745]
+* Misc. bug fixes and cleanups [Will, Daniel, Florian, Jonas, Marco, Sebastian;
+  !2689, !2693, !2696, !2699, !2730, !2739, !2738, !2712]
+
+Contributors:
+  Jonas Dreßler, Balló György, Sebastian Keller, Ivan Molodetskikh, msizanoen1,
+  Florian Müllner, Will Thompson, Marco Trevisan (Treviño), Daniel van Vugt
+
+Translators:
+  Nart Tlisha [ab], Boyuan Yang [zh_CN]
+
 43.4
 ====
 * Plugged leak [Sebastian; !2652]
diff --git a/debian/changelog b/debian/changelog
index f44e61c0c..bdc1f210d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,45 @@
+gnome-shell (43.5-0+deb12u1) UNRELEASED; urgency=medium
+
+  * New upstream stable release
+    - Fix a regression in 43~beta involving detection of hotplugged media
+      with autorunnable content (gnome-shell!2745)
+    - Make search results fill unused space as intended (gnome-shell#5924)
+    - Improve matching of app StartupWMClass to a .desktop file, giving
+      priority to apps that were not hidden by OnlyShowIn under the current
+      desktop environment, in particular preferring gnome-system-monitor's
+      non-KDE-specific .desktop file while running GNOME (gnome-shell!2721)
+    - Fix assertion failures after a window preview is destroyed
+      (gnome-shell#5512, gnome-shell#6065)
+    - Avoid destroying labels twice, most commonly when using
+      gnome-shell-extension-dash-to-dock (gnome-shell!2739)
+    - Avoid keyboard navigation focus getting stuck on top bar buttons with
+      no associated menu (gnome-shell!2734, might help #1032319)
+    - Fix queued notifications getting into a state where they can no
+      longer be removed (gnome-shell!2736)
+    - Receive notifications of removed objects from D-Bus ObjectManager
+      instances correctly (gnome-shell!2730)
+    - Fix a cursor appearing at 0,0 in screenshots that should not
+      include it (gnome-shell!2702)
+    - Update visibility of workspaces in workspace switcher when required
+      (gnome-shell#6519)
+    - After 60 second timeout in logout/reboot/poweroff confirmation
+      dialog, do the requested action instead of leaving the Shell in a
+      broken state (gnome-shell#6506)
+    - Fix an assertion failure during shutdown (gnome-shell#6512)
+    - Fix an assertion failure if Geoclue isn't D-Bus-activatable
+      (gnome-shell!2689)
+    - Fix a regression in which the cursor would not be included in
+      screenshots since mutter 43.1 (gnome-shell!2710)
+    - Upstream CI fixes not relevant to Debian
+    - Translation update: zh_CN
+  * d/control.in: Build-depend on mutter 43.5, for a newly-public utility
+    function needed by gnome-shell!2710
+  * d/patches: Drop ab translation patch, applied upstream
+  * d/patches: Update to gnome-43 branch commit 43.5-1-g2936e966a
+    - Translation update: pt_BR
+
+ -- Simon McVittie <s...@debian.org>  Sat, 27 May 2023 16:03:49 +0100
+
 gnome-shell (43.4-1) unstable; urgency=medium
 
   * Team upload
diff --git a/debian/control b/debian/control
index 20815c4c6..78f01daa7 100644
--- a/debian/control
+++ b/debian/control
@@ -48,8 +48,8 @@ Build-Depends: appstream,
                libgtk-4-dev,
                libibus-1.0-dev (>= 1.5.22-2ubuntu2~),
                libjson-glib-dev,
-               libmutter-11-dev (>= 43.0),
-               libmutter-test-11 (>= 43.0) <!nocheck>,
+               libmutter-11-dev (>= 43.5),
+               libmutter-test-11 (>= 43.5) <!nocheck>,
                libnm-dev [linux-any],
                libpipewire-0.3-dev (>= 0.3.10) [linux-any],
                libpolkit-agent-1-dev,
@@ -62,7 +62,7 @@ Build-Depends: appstream,
                libxml2-dev,
                mesa-common-dev,
                meson (>= 0.58.0),
-               mutter (>= 43.0) <!nocheck>,
+               mutter (>= 43.5) <!nocheck>,
                pkg-config,
                sassc,
                systemd [linux-any],
@@ -96,7 +96,7 @@ Depends: gir1.2-accountsservice-1.0,
          gir1.2-gweather-4.0 (>= 4.1),
          gir1.2-freedesktop,
          gir1.2-ibus-1.0 (>= 1.5.22-2ubuntu2~),
-         gir1.2-mutter-11 (>= 43.0),
+         gir1.2-mutter-11 (>= 43.5),
          gir1.2-nm-1.0 [linux-any],
          gir1.2-nma-1.0 [linux-any],
          gir1.2-pango-1.0,
diff --git a/debian/control.in b/debian/control.in
index f035c1d13..11fd3cabe 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -44,8 +44,8 @@ Build-Depends: appstream,
                libgtk-4-dev,
                libibus-1.0-dev (>= 1.5.22-2ubuntu2~),
                libjson-glib-dev,
-               libmutter-11-dev (>= 43.0),
-               libmutter-test-11 (>= 43.0) <!nocheck>,
+               libmutter-11-dev (>= 43.5),
+               libmutter-test-11 (>= 43.5) <!nocheck>,
                libnm-dev [linux-any],
                libpipewire-0.3-dev (>= 0.3.10) [linux-any],
                libpolkit-agent-1-dev,
@@ -58,7 +58,7 @@ Build-Depends: appstream,
                libxml2-dev,
                mesa-common-dev,
                meson (>= 0.58.0),
-               mutter (>= 43.0) <!nocheck>,
+               mutter (>= 43.5) <!nocheck>,
                pkg-config,
                sassc,
                systemd [linux-any],
@@ -92,7 +92,7 @@ Depends: gir1.2-accountsservice-1.0,
          gir1.2-gweather-4.0 (>= 4.1),
          gir1.2-freedesktop,
          gir1.2-ibus-1.0 (>= 1.5.22-2ubuntu2~),
-         gir1.2-mutter-11 (>= 43.0),
+         gir1.2-mutter-11 (>= 43.5),
          gir1.2-nm-1.0 [linux-any],
          gir1.2-nma-1.0 [linux-any],
          gir1.2-pango-1.0,
diff --git a/debian/patches/Update-Brazilian-Portuguese-translation.patch b/debian/patches/Update-Brazilian-Portuguese-translation.patch
new file mode 100644
index 000000000..2b16a8e3b
diff --git a/debian/patches/series b/debian/patches/series
index 5e452a3d3..0d3bde233 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,3 @@
-Update-Abkhazian-translation.patch
+Update-Brazilian-Portuguese-translation.patch
 debian/gnome-shell-extension-prefs-Give-Debian-specific-advice.patch
 debian/Revert-build-Port-to-gcr4.patch
diff --git a/js/misc/objectManager.js b/js/misc/objectManager.js
index c40975988..a1dcde3a7 100644
--- a/js/misc/objectManager.js
+++ b/js/misc/objectManager.js
@@ -130,7 +130,7 @@ var ObjectManager = class extends Signals.EventEmitter {
 
         this.emit('interface-removed', interfaceName, proxy);
 
-        this._objects[objectPath][interfaceName] = null;
+        delete this._objects[objectPath][interfaceName];
 
         if (Object.keys(this._objects[objectPath]).length === 0) {
             delete this._objects[objectPath];
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 6a36f8f78..61fd0bc77 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -1201,7 +1201,8 @@ var BaseAppView = GObject.registerClass({
     }
 
     vfunc_unmap() {
-        this._swipeTracker.enabled = false;
+        if (this._swipeTracker)
+            this._swipeTracker.enabled = false;
         this._disconnectDnD();
         super.vfunc_unmap();
     }
diff --git a/js/ui/components/autorunManager.js b/js/ui/components/autorunManager.js
index 0e3fa9385..d94be397d 100644
--- a/js/ui/components/autorunManager.js
+++ b/js/ui/components/autorunManager.js
@@ -102,7 +102,7 @@ var ContentTypeDiscoverer = class {
             if (contentTypes.length === 0) {
                 const root = mount.get_root();
                 const hotplugSniffer = new HotplugSniffer();
-                [contentTypes] = hotplugSniffer.SniffURIAsync(root.get_uri());
+                [contentTypes] = await hotplugSniffer.SniffURIAsync(root.get_uri());
             }
         }
 
diff --git a/js/ui/dash.js b/js/ui/dash.js
index 202fed0c6..165f8ea63 100644
--- a/js/ui/dash.js
+++ b/js/ui/dash.js
@@ -71,6 +71,7 @@ class DashItemContainer extends St.Widget {
         this.label = new St.Label({ style_class: 'dash-label' });
         this.label.hide();
         Main.layoutManager.addChrome(this.label);
+        this.label.connectObject('destroy', () => (this.label = null), this);
         this.label_actor = this.label;
 
         this.child = null;
@@ -82,7 +83,7 @@ class DashItemContainer extends St.Widget {
         this.connect('destroy', () => {
             if (this.child != null)
                 this.child.destroy();
-            this.label.destroy();
+            this.label?.destroy();
         });
     }
 
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index e001f2202..1edd932f6 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -1006,9 +1006,8 @@ var MessageTray = GObject.registerClass({
     }
 
     _onNotificationDestroy(notification) {
-        this._notificationRemoved = this._notification === notification;
-
-        if (this._notificationRemoved) {
+        if (this._notification === notification) {
+            this._notificationRemoved = true;
             if (this._notificationState === State.SHOWN ||
                 this._notificationState === State.SHOWING) {
                 this._updateNotificationTimeout(0);
diff --git a/js/ui/modalDialog.js b/js/ui/modalDialog.js
index 64800a376..0561b8b15 100644
--- a/js/ui/modalDialog.js
+++ b/js/ui/modalDialog.js
@@ -282,7 +282,7 @@ var ModalDialog = GObject.registerClass({
             opacity: 0,
             duration: FADE_OUT_DIALOG_TIME,
             mode: Clutter.AnimationMode.EASE_OUT_QUAD,
-            onComplete: () => (this.state = State.FADED_OUT),
+            onComplete: () => this._setState(State.FADED_OUT),
         });
     }
 });
diff --git a/js/ui/panelMenu.js b/js/ui/panelMenu.js
index 75b6ba5f5..a5445ce87 100644
--- a/js/ui/panelMenu.js
+++ b/js/ui/panelMenu.js
@@ -108,6 +108,9 @@ var Button = GObject.registerClass({
             this.menu = new PopupMenu.PopupDummyMenu(this);
         else
             this.setMenu(new PopupMenu.PopupMenu(this, menuAlignment, St.Side.TOP, 0));
+
+        this.connect('key-press-event',
+            (o, ev) => global.focus_manager.navigate_from_event(ev));
     }
 
     setSensitive(sensitive) {
diff --git a/js/ui/screenshot.js b/js/ui/screenshot.js
index b2ea6fad2..4d9e42e51 100644
--- a/js/ui/screenshot.js
+++ b/js/ui/screenshot.js
@@ -787,7 +787,7 @@ class UIWindowSelectorWindow extends St.Button {
 
         this._cursor = null;
         this._cursorPoint = { x: 0, y: 0 };
-        this._shouldShowCursor = actor.get_children().some(c => c.has_pointer);
+        this._shouldShowCursor = window.has_pointer && window.has_pointer();
 
         this.connect('destroy', this._onDestroy.bind(this));
     }
@@ -917,6 +917,10 @@ class UIWindowSelectorWindow extends St.Button {
         this.insert_child_below(this._cursor, this._border);
     }
 
+    getCursorTexture() {
+        return this._cursor?.content;
+    }
+
     setCursorVisible(visible) {
         if (!this._cursor)
             return;
@@ -1805,7 +1809,7 @@ var ScreenshotUI = GObject.registerClass({
 
             const texture = content.get_texture();
 
-            let cursorTexture = this._cursor.content?.get_texture();
+            let cursorTexture = window.getCursorTexture()?.get_texture();
             if (!this._cursor.visible)
                 cursorTexture = null;
 
diff --git a/js/ui/search.js b/js/ui/search.js
index 71870a039..1029f311f 100644
--- a/js/ui/search.js
+++ b/js/ui/search.js
@@ -534,7 +534,12 @@ var SearchResultsView = GObject.registerClass({
     Signals: { 'terms-changed': {} },
 }, class SearchResultsView extends St.BoxLayout {
     _init() {
-        super._init({ name: 'searchResults', vertical: true });
+        super._init({
+            name: 'searchResults',
+            vertical: true,
+            x_expand: true,
+            y_expand: true,
+        });
 
         this._parentalControlsManager = ParentalControlsManager.getDefault();
         this._parentalControlsManager.connect('app-filter-changed', this._reloadRemoteProviders.bind(this));
diff --git a/js/ui/status/location.js b/js/ui/status/location.js
index a2481f4c3..45f6b7ac8 100644
--- a/js/ui/status/location.js
+++ b/js/ui/status/location.js
@@ -160,7 +160,7 @@ var GeoclueAgent = GObject.registerClass({
     }
 
     _onGeoclueVanished() {
-        this._managerProxy.disconnectObject(this);
+        this._managerProxy?.disconnectObject(this);
         this._managerProxy = null;
 
         this.notify('in-use');
diff --git a/js/ui/windowPreview.js b/js/ui/windowPreview.js
index e7e1ed92b..c6504141f 100644
--- a/js/ui/windowPreview.js
+++ b/js/ui/windowPreview.js
@@ -525,6 +525,7 @@ var WindowPreview = GObject.registerClass({
     _onDestroy() {
         this.metaWindow._delegate = null;
         this._delegate = null;
+        this._destroyed = true;
 
         if (this._longPressLater) {
             Meta.later_remove(this._longPressLater);
@@ -553,6 +554,9 @@ var WindowPreview = GObject.registerClass({
     }
 
     vfunc_leave_event(crossingEvent) {
+        if (this._destroyed)
+            return super.vfunc_leave_event(crossingEvent);
+
         if ((crossingEvent.flags & Clutter.EventFlags.FLAG_GRAB_NOTIFY) !== 0 &&
             global.stage.get_grab_actor() === this._closeButton)
             return super.vfunc_leave_event(crossingEvent);
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
index 511847250..660fcf624 100644
--- a/js/ui/workspacesView.js
+++ b/js/ui/workspacesView.js
@@ -118,7 +118,6 @@ class WorkspacesView extends WorkspacesViewBase {
 
         global.window_manager.connectObject('switch-workspace',
             this._activeWorkspaceChanged.bind(this), this);
-        this._updateVisibility();
     }
 
     _getFirstFitAllWorkspaceBox(box, spacing, vertical) {
@@ -465,6 +464,7 @@ class WorkspacesView extends WorkspacesViewBase {
         }
 
         this._updateWorkspacesState();
+        this._updateVisibility();
     }
 
     _activeWorkspaceChanged(_wm, _from, _to, _direction) {
diff --git a/meson.build b/meson.build
index 0ab89552f..a58c2e36b 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
 project('gnome-shell', 'c',
-  version: '43.4',
+  version: '43.5',
   meson_version: '>= 0.58.0',
   license: 'GPLv2+'
 )
diff --git a/src/shell-app-system.c b/src/shell-app-system.c
index a5b76362d..289954410 100644
--- a/src/shell-app-system.c
+++ b/src/shell-app-system.c
@@ -91,21 +91,43 @@ static void shell_app_system_class_init(ShellAppSystemClass *klass)
 		  G_TYPE_NONE, 0);
 }
 
+/*
+ * Check whether @wm_class matches @id exactly when ignoring the .desktop suffix
+ */
+static gboolean
+startup_wm_class_is_exact_match (const char *id,
+                                 const char *wm_class)
+{
+  size_t wm_class_len;
+
+  if (!g_str_has_prefix (id, wm_class))
+    return FALSE;
+
+  wm_class_len = strlen (wm_class);
+  if (id[wm_class_len] == '\0')
+    return TRUE;
+
+  return g_str_equal (id + wm_class_len, ".desktop");
+}
+
 static void
 scan_startup_wm_class_to_id (ShellAppSystem *self)
 {
   ShellAppSystemPrivate *priv = self->priv;
+  g_autoptr(GPtrArray) no_show_ids = NULL;
   const GList *l;
   GList *all;
 
   g_hash_table_remove_all (priv->startup_wm_class_to_id);
 
   all = shell_app_cache_get_all (shell_app_cache_get_default ());
+  no_show_ids = g_ptr_array_new ();
 
   for (l = all; l != NULL; l = l->next)
     {
       GAppInfo *info = l->data;
       const char *startup_wm_class, *id, *old_id;
+      gboolean should_show;
 
       id = g_app_info_get_id (info);
       startup_wm_class = g_desktop_app_info_get_startup_wm_class (G_DESKTOP_APP_INFO (info));
@@ -113,10 +135,23 @@ scan_startup_wm_class_to_id (ShellAppSystem *self)
       if (startup_wm_class == NULL)
         continue;
 
+      should_show = g_app_info_should_show (info);
+      if (!should_show)
+        g_ptr_array_add (no_show_ids, (char *) id);
+
       /* In case multiple .desktop files set the same StartupWMClass, prefer
        * the one where ID and StartupWMClass match */
       old_id = g_hash_table_lookup (priv->startup_wm_class_to_id, startup_wm_class);
-      if (old_id == NULL || strcmp (id, startup_wm_class) == 0)
+
+      if (old_id && startup_wm_class_is_exact_match (id, startup_wm_class))
+        old_id = NULL;
+
+      /* Give priority to the desktop files that should be shown */
+      if (old_id && should_show &&
+          g_ptr_array_find_with_equal_func (no_show_ids, old_id, g_str_equal, NULL))
+        old_id = NULL;
+
+      if (!old_id)
         g_hash_table_insert (priv->startup_wm_class_to_id,
                              g_strdup (startup_wm_class), g_strdup (id));
     }
diff --git a/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in b/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in
index f7f8c11bb..79acefc58 100644
--- a/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in
+++ b/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in
@@ -39,6 +39,7 @@
   </description>
 
   <releases>
+    <release version="43.5" date="2023-04-24"/>
     <release version="43.4" date="2023-03-19"/>
     <release version="43.3" date="2023-02-13"/>
     <release version="43.2" date="2022-12-06"/>
diff --git a/subprojects/extensions-app/generate-translations.sh b/subprojects/extensions-app/generate-translations.sh
index 71ee4d31f..591eb7671 100755
--- a/subprojects/extensions-app/generate-translations.sh
+++ b/subprojects/extensions-app/generate-translations.sh
@@ -12,7 +12,7 @@ done
 
 builddir=$(mktemp -d -p.)
 
-meson $builddir
+meson setup $builddir
 meson compile -C $builddir gnome-extensions-app-pot
 meson compile -C $builddir gnome-extensions-app-update-po
 
diff --git a/subprojects/extensions-app/meson.build b/subprojects/extensions-app/meson.build
index 451ec3dc0..6048fa153 100644
--- a/subprojects/extensions-app/meson.build
+++ b/subprojects/extensions-app/meson.build
@@ -1,5 +1,5 @@
 project('gnome-extensions-app',
-  version: '43.4',
+  version: '43.5',
   meson_version: '>= 0.58.0',
   license: 'GPLv2+'
 )
diff --git a/subprojects/extensions-tool/generate-translations.sh b/subprojects/extensions-tool/generate-translations.sh
index f7cf44789..3521a4477 100755
--- a/subprojects/extensions-tool/generate-translations.sh
+++ b/subprojects/extensions-tool/generate-translations.sh
@@ -12,7 +12,7 @@ done
 
 builddir=$(mktemp -d -p.)
 
-meson -Dman=False $builddir
+meson setup -Dman=False $builddir
 meson compile -C $builddir gnome-extensions-tool-pot
 meson compile -C $builddir gnome-extensions-tool-update-po
 
diff --git a/subprojects/extensions-tool/meson.build b/subprojects/extensions-tool/meson.build
index 7f5680a22..408c644f2 100644
--- a/subprojects/extensions-tool/meson.build
+++ b/subprojects/extensions-tool/meson.build
@@ -1,5 +1,5 @@
 project('gnome-extensions-tool', 'c',
-  version: '43.4',
+  version: '43.5',
   meson_version: '>= 0.58.0',
   license: 'GPLv2+'
 )
diff --git a/subprojects/shew/meson.build b/subprojects/shew/meson.build
index 62d5c3b45..673610c92 100644
--- a/subprojects/shew/meson.build
+++ b/subprojects/shew/meson.build
@@ -1,5 +1,5 @@
 project('shew', 'c',
-  version: '43.4',
+  version: '43.5',
   meson_version: '>= 0.58.0',
   license: 'LGPLv2+',
 )

Reply via email to