diff --git a/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor/0001-Don-t-alter-or-try-to-write-GtkChild-fields.patch b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor/0001-Don-t-alter-or-try-to-write-GtkChild-fields.patch
deleted file mode 100644
index 7c83ae3..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor/0001-Don-t-alter-or-try-to-write-GtkChild-fields.patch
+++ /dev/null
@@ -1,522 +0,0 @@
-From ba4a39b74067b73c9bed64dad7be3d53e837dd8d Mon Sep 17 00:00:00 2001
-From: Rico Tzschichholz <ricotz@ubuntu.com>
-Date: Sat, 16 Jan 2021 13:26:32 +0100
-Subject: [PATCH] Don't alter or try to write GtkChild fields
-
-See https://gitlab.gnome.org/GNOME/vala/issues/1121
-
-Upstream-Status: Backport [https://github.com/GNOME/dconf-editor/commit/9272e9fb6867e71426bfd0aa5edce5ec39cf0ad4]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- editor/bookmarks-headerbar.vala  |  4 +--
- editor/bookmarks-list.vala       |  4 +--
- editor/bookmarks.vala            | 12 +++----
- editor/delayed-setting-view.vala | 54 ++++++++++++++++----------------
- editor/overlayed-list.vala       | 38 +++++++++++-----------
- editor/pathentry.vala            | 24 +++++++-------
- editor/registry-list.vala        |  6 ++--
- editor/registry-search.vala      |  6 ++--
- editor/registry-view.vala        |  2 +-
- 9 files changed, 75 insertions(+), 75 deletions(-)
-
-diff --git a/editor/bookmarks-headerbar.vala b/editor/bookmarks-headerbar.vala
-index 54848a5..0522c37 100644
---- a/editor/bookmarks-headerbar.vala
-+++ b/editor/bookmarks-headerbar.vala
-@@ -24,7 +24,7 @@ private abstract class BookmarksHeaderBar : BrowserHeaderBar, AdaptativeWidget
-         install_action_entries ();
- 
-         add_bookmarks_revealer              (out bookmarks_revealer,
--                                             out bookmarks_button,              ref center_box);
-+                                             out bookmarks_button,              center_box);
-         connect_bookmarks_signals ();
-         add_bookmarks_controller            (out bookmarks_controller,          ref this);
- 
-@@ -58,7 +58,7 @@ private abstract class BookmarksHeaderBar : BrowserHeaderBar, AdaptativeWidget
-     private Bookmarks           bookmarks_button;
-     private BookmarksController bookmarks_controller;
- 
--    private static void add_bookmarks_revealer (out Revealer bookmarks_revealer, out Bookmarks bookmarks_button, ref Box center_box)
-+    private static void add_bookmarks_revealer (out Revealer bookmarks_revealer, out Bookmarks bookmarks_button, Box center_box)
-     {
-         bookmarks_revealer = new Revealer ();
-         bookmarks_revealer.transition_type = RevealerTransitionType.SLIDE_LEFT;
-diff --git a/editor/bookmarks-list.vala b/editor/bookmarks-list.vala
-index 393973b..c9280d5 100644
---- a/editor/bookmarks-list.vala
-+++ b/editor/bookmarks-list.vala
-@@ -146,10 +146,10 @@ private class BookmarksList : OverlayedList
- 
-     internal bool create_bookmark_rows (Variant bookmarks_variant)
-     {
--        _create_bookmark_rows (bookmarks_variant, view_mode, ref main_list_store, ref main_list_box, ref bookmarks_hashtable);
-+        _create_bookmark_rows (bookmarks_variant, view_mode, ref main_list_store, main_list_box, ref bookmarks_hashtable);
-         return n_items == 0;
-     }
--    private static void _create_bookmark_rows (Variant bookmarks_variant, bool view_mode, ref GLib.ListStore main_list_store, ref ListBox main_list_box, ref HashTable<string, Bookmark> bookmarks_hashtable)
-+    private static void _create_bookmark_rows (Variant bookmarks_variant, bool view_mode, ref GLib.ListStore main_list_store, ListBox main_list_box, ref HashTable<string, Bookmark> bookmarks_hashtable)
-     {
-         string saved_bookmark_name = "";
-         ListBoxRow? selected_row = main_list_box.get_selected_row ();
-diff --git a/editor/bookmarks.vala b/editor/bookmarks.vala
-index 153af10..d8cea7c 100644
---- a/editor/bookmarks.vala
-+++ b/editor/bookmarks.vala
-@@ -84,7 +84,7 @@ private class Bookmarks : MenuButton
- 
-     construct
-     {
--        update_switch_label (ViewType.SEARCH, ViewType.FOLDER, ref switch_label); // init text with "Bookmark this Location"
-+        update_switch_label (ViewType.SEARCH, ViewType.FOLDER, switch_label); // init text with "Bookmark this Location"
- 
-         install_action_entries ();
- 
-@@ -184,7 +184,7 @@ private class Bookmarks : MenuButton
- 
-     internal void set_path (ViewType type, string path)
-     {
--        update_switch_label (current_type, type, ref switch_label);
-+        update_switch_label (current_type, type, switch_label);
- 
-         current_path = path;
-         current_type = type;
-@@ -392,7 +392,7 @@ private class Bookmarks : MenuButton
-     * * Bookmarks management
-     \*/
- 
--    private static void update_switch_label (ViewType old_type, ViewType new_type, ref Label switch_label)
-+    private static void update_switch_label (ViewType old_type, ViewType new_type, Label switch_label)
-     {
-         if (new_type == ViewType.SEARCH && old_type != ViewType.SEARCH)
-             switch_label.label = bookmark_this_search_text;
-@@ -414,18 +414,18 @@ private class Bookmarks : MenuButton
-         {
-             if (bookmarks_icon.icon_name != "starred-symbolic")
-                 bookmarks_icon.icon_name = "starred-symbolic";
--            update_switch_state (true, ref bookmarked_switch);
-+            update_switch_state (true, bookmarked_switch);
-             bookmarked_switch.set_detailed_action_name ("bookmarks.unbookmark(" + variant.print (true) + ")");
-         }
-         else
-         {
-             if (bookmarks_icon.icon_name != "non-starred-symbolic")
-                 bookmarks_icon.icon_name = "non-starred-symbolic";
--            update_switch_state (false, ref bookmarked_switch);
-+            update_switch_state (false, bookmarked_switch);
-             bookmarked_switch.set_detailed_action_name ("bookmarks.bookmark(" + variant.print (true) + ")");
-         }
-     }
--    private static void update_switch_state (bool bookmarked, ref Switch bookmarked_switch)
-+    private static void update_switch_state (bool bookmarked, Switch bookmarked_switch)
-     {
-         if (bookmarked == bookmarked_switch.active)
-             return;
-diff --git a/editor/delayed-setting-view.vala b/editor/delayed-setting-view.vala
-index add6852..b1f774c 100644
---- a/editor/delayed-setting-view.vala
-+++ b/editor/delayed-setting-view.vala
-@@ -41,24 +41,24 @@ private class DelayedSettingView : OverlayedListRow
-         {
-             // at row creation, key is never ghost
-             _update_dconf_key_current_value (key_value,
--                                         ref key_value_label,
--                                         ref key_value_default);
-+                                             key_value_label,
-+                                             key_value_default);
- 
-             _update_dconf_key_planned_value (cool_planned_value,
--                                         ref planned_value_label,
--                                         ref planned_value_default);
-+                                             planned_value_label,
-+                                             planned_value_default);
-         }
-         else
-         {
-             _update_gsettings_key_current_value (key_value,
-                                                  has_schema_and_is_default,
--                                             ref key_value_label,
--                                             ref key_value_default);
-+                                                 key_value_label,
-+                                                 key_value_default);
- 
-             _update_gsettings_key_planned_value (cool_planned_value,
-                                                  (!) cool_default_value,
--                                             ref planned_value_label,
--                                             ref planned_value_default);
-+                                                 planned_value_label,
-+                                                 planned_value_default);
-         }
-     }
- 
-@@ -74,23 +74,23 @@ private class DelayedSettingView : OverlayedListRow
- 
-     private static inline void _update_gsettings_key_planned_value (string? cool_planned_value,
-                                                                     string  cool_default_value,
--                                                                ref Label   planned_value_label,
--                                                                ref Label   planned_value_default)
-+                                                                    Label   planned_value_label,
-+                                                                    Label   planned_value_default)
-     {
-         bool is_default = cool_planned_value == null;
-         planned_value_label.label = is_default ? cool_default_value : (!) cool_planned_value;
--        update_value_default_label (is_default, ref planned_value_default);
-+        update_value_default_label (is_default, planned_value_default);
-     }
- 
-     private static inline void _update_dconf_key_planned_value (string? cool_planned_value,
--                                                            ref Label   planned_value_label,
--                                                            ref Label   planned_value_default)
-+                                                                Label   planned_value_label,
-+                                                                Label   planned_value_default)
-     {
-         if (cool_planned_value == null)
--            update_labels_dconf_key_erased (ref planned_value_label, ref planned_value_default);
-+            update_labels_dconf_key_erased (planned_value_label, planned_value_default);
-         else
-             update_labels_dconf_key_values ((!) cool_planned_value,
--                                            ref planned_value_label, ref planned_value_default);
-+                                            planned_value_label, planned_value_default);
-     }
- 
-     /*\
-@@ -99,37 +99,37 @@ private class DelayedSettingView : OverlayedListRow
- 
-     internal void update_gsettings_key_current_value (Variant key_value, bool is_default)
-     {
--        _update_gsettings_key_current_value (key_value, is_default, ref key_value_label, ref key_value_default);
-+        _update_gsettings_key_current_value (key_value, is_default, key_value_label, key_value_default);
-     }
-     private static void _update_gsettings_key_current_value (Variant key_value,
-                                                              bool    is_default,
--                                                         ref Label   key_value_label,
--                                                         ref Label   key_value_default)
-+                                                             Label   key_value_label,
-+                                                             Label   key_value_default)
-     {
-         key_value_label.label = Key.cool_text_value_from_variant (key_value);
--        update_value_default_label (is_default, ref key_value_default);
-+        update_value_default_label (is_default, key_value_default);
-     }
- 
-     internal void update_dconf_key_current_value (Variant? key_value_or_null)
-     {
--        _update_dconf_key_current_value (key_value_or_null, ref key_value_label, ref key_value_default);
-+        _update_dconf_key_current_value (key_value_or_null, key_value_label, key_value_default);
-     }
-     private static void _update_dconf_key_current_value (Variant? key_value_or_null,
--                                                     ref Label    key_value_label,
--                                                     ref Label    key_value_default)
-+                                                         Label    key_value_label,
-+                                                         Label    key_value_default)
-     {
-         if (key_value_or_null == null)
--            update_labels_dconf_key_erased (ref key_value_label, ref key_value_default);
-+            update_labels_dconf_key_erased (key_value_label, key_value_default);
-         else
-             update_labels_dconf_key_values (Key.cool_text_value_from_variant ((!) key_value_or_null),
--                                            ref key_value_label, ref key_value_default);
-+                                            key_value_label, key_value_default);
-     }
- 
-     /*\
-     * * common utilities
-     \*/
- 
--    private static void update_labels_dconf_key_erased (ref Label value_label, ref Label value_default)
-+    private static void update_labels_dconf_key_erased (Label value_label, Label value_default)
-     {
-         value_label.visible = false;
-         /* Translators: displayed in the list of pending changes (could be an in-window panel, or in the popover of the bottom bar); for dconf keys */
-@@ -137,14 +137,14 @@ private class DelayedSettingView : OverlayedListRow
-         value_default.visible = true;
-     }
- 
--    private static void update_labels_dconf_key_values (string key_value, ref Label value_label, ref Label value_default)
-+    private static void update_labels_dconf_key_values (string key_value, Label value_label, Label value_default)
-     {
-         value_default.visible = false;
-         value_label.label = key_value;  // TODO move Key.cool_text_value_from_variant here?
-         value_label.visible = true;
-     }
- 
--    private static void update_value_default_label (bool is_default, ref Label value_default)
-+    private static void update_value_default_label (bool is_default, Label value_default)
-     {
-         if (is_default)
-             /* Translators: displayed in the list of pending changes (could be an in-window panel, or in the popover of the bottom bar); for gsettings keys */
-diff --git a/editor/overlayed-list.vala b/editor/overlayed-list.vala
-index 8b0ec51..bcdfc3a 100644
---- a/editor/overlayed-list.vala
-+++ b/editor/overlayed-list.vala
-@@ -89,11 +89,11 @@ private abstract class OverlayedList : Overlay, AdaptativeWidget
-     internal void set_window_size (AdaptativeWidget.WindowSize new_size)
-     {
-         if (!AdaptativeWidget.WindowSize.is_extra_thin (new_size) && AdaptativeWidget.WindowSize.is_extra_flat (new_size))
--            set_horizontal (ref main_context, ref edit_mode_box);
-+            set_horizontal (ref main_context, edit_mode_box);
-         else
--            set_vertical (ref main_context, ref edit_mode_box);
-+            set_vertical (ref main_context, edit_mode_box);
-     }
--    private static inline void set_horizontal (ref StyleContext main_context, ref Box edit_mode_box)
-+    private static inline void set_horizontal (ref StyleContext main_context, Box edit_mode_box)
-     {
-         main_context.remove_class ("vertical");
-         edit_mode_box.halign = Align.END;
-@@ -102,7 +102,7 @@ private abstract class OverlayedList : Overlay, AdaptativeWidget
-         edit_mode_box.width_request = 160;
-         main_context.add_class ("horizontal");
-     }
--    private static inline void set_vertical (ref StyleContext main_context, ref Box edit_mode_box)
-+    private static inline void set_vertical (ref StyleContext main_context, Box edit_mode_box)
-     {
-         main_context.remove_class ("horizontal");
-         edit_mode_box.halign = Align.CENTER;
-@@ -118,9 +118,9 @@ private abstract class OverlayedList : Overlay, AdaptativeWidget
- 
-     internal bool next_match ()
-     {
--        return _next_match (ref main_list_box);
-+        return _next_match (main_list_box);
-     }
--    private static inline bool _next_match (ref ListBox main_list_box)
-+    private static inline bool _next_match (ListBox main_list_box)
-     {
-         ListBoxRow? row = main_list_box.get_selected_row ();    // TODO multiple rows and focus-only lists
-         if (row == null)
-@@ -130,7 +130,7 @@ private abstract class OverlayedList : Overlay, AdaptativeWidget
- 
-         if (row == null)
-         {
--            _scroll_bottom (ref main_list_box);
-+            _scroll_bottom (main_list_box);
-             return false;
-         }
-         main_list_box.select_row ((!) row);
-@@ -140,9 +140,9 @@ private abstract class OverlayedList : Overlay, AdaptativeWidget
- 
-     internal bool previous_match ()
-     {
--        return _previous_match (ref main_list_box);
-+        return _previous_match (main_list_box);
-     }
--    private static inline bool _previous_match (ref ListBox main_list_box)
-+    private static inline bool _previous_match (ListBox main_list_box)
-     {
-         uint n_items = main_list_box.get_children ().length ();  // FIXME OverlayedList.n_items is unreliable
-         if (n_items == 0)
-@@ -189,9 +189,9 @@ private abstract class OverlayedList : Overlay, AdaptativeWidget
- 
-     protected int [] get_selected_rows_indices ()
-     {
--        return _get_selected_rows_indices (ref main_list_box);
-+        return _get_selected_rows_indices (main_list_box);
-     }
--    private static inline int [] _get_selected_rows_indices (ref ListBox main_list_box)
-+    private static inline int [] _get_selected_rows_indices (ListBox main_list_box)
-     {
-         int [] indices = new int [0];
-         main_list_box.selected_foreach ((_list_box, selected_row) => {
-@@ -205,9 +205,9 @@ private abstract class OverlayedList : Overlay, AdaptativeWidget
- 
-     protected void scroll_top ()
-     {
--        _scroll_top (ref main_list_box);
-+        _scroll_top (main_list_box);
-     }
--    private static inline void _scroll_top (ref ListBox main_list_box)
-+    private static inline void _scroll_top (ListBox main_list_box)
-     {
-         Adjustment adjustment = main_list_box.get_adjustment ();
-         adjustment.set_value (adjustment.get_lower ());
-@@ -215,9 +215,9 @@ private abstract class OverlayedList : Overlay, AdaptativeWidget
- 
-     protected void scroll_bottom ()
-     {
--        _scroll_bottom (ref main_list_box);
-+        _scroll_bottom (main_list_box);
-     }
--    private static inline void _scroll_bottom (ref ListBox main_list_box)
-+    private static inline void _scroll_bottom (ListBox main_list_box)
-     {
-         Adjustment adjustment = main_list_box.get_adjustment ();
-         adjustment.set_value (adjustment.get_upper ());
-@@ -225,9 +225,9 @@ private abstract class OverlayedList : Overlay, AdaptativeWidget
- 
-     internal bool handle_copy_text (out string copy_text)
-     {
--        return _handle_copy_text (out copy_text, ref main_list_box);
-+        return _handle_copy_text (out copy_text, main_list_box);
-     }
--    private static inline bool _handle_copy_text (out string copy_text, ref ListBox main_list_box)
-+    private static inline bool _handle_copy_text (out string copy_text, ListBox main_list_box)
-     {
-         List<weak ListBoxRow> selected_rows = main_list_box.get_selected_rows ();
-         OverlayedListRow row;
-@@ -283,9 +283,9 @@ private abstract class OverlayedList : Overlay, AdaptativeWidget
- 
-     internal SelectionState get_selection_state ()
-     {
--        return _get_selection_state (ref main_list_box, ref main_list_store);
-+        return _get_selection_state (main_list_box, ref main_list_store);
-     }
--    private static inline SelectionState _get_selection_state (ref ListBox main_list_box, ref GLib.ListStore main_list_store)
-+    private static inline SelectionState _get_selection_state (ListBox main_list_box, ref GLib.ListStore main_list_store)
-     {
-         List<weak ListBoxRow> selected_rows = main_list_box.get_selected_rows ();
-         uint n_selected_rows = selected_rows.length ();
-diff --git a/editor/pathentry.vala b/editor/pathentry.vala
-index 5000b21..5c7efc5 100644
---- a/editor/pathentry.vala
-+++ b/editor/pathentry.vala
-@@ -133,9 +133,9 @@ private class PathEntry : Box, AdaptativeWidget
- 
-     internal void entry_grab_focus_without_selecting ()
-     {
--        _entry_grab_focus_without_selecting (ref search_entry);
-+        _entry_grab_focus_without_selecting (search_entry);
-     }
--    private static void _entry_grab_focus_without_selecting (ref BrowserEntry search_entry)
-+    private static void _entry_grab_focus_without_selecting (BrowserEntry search_entry)
-     {
-         if (search_entry.text_length != 0)
-         {
-@@ -172,36 +172,36 @@ private class PathEntry : Box, AdaptativeWidget
-         requires (search_changed_handler != 0)
-     {
-         SignalHandler.block (search_entry, search_changed_handler);
--        _prepare (mode, nullable_search, ref current_path, ref search_entry);
-+        _prepare (mode, nullable_search, ref current_path, search_entry);
-         SignalHandler.unblock (search_entry, search_changed_handler);
-     }
- 
-     private static inline void _prepare (SearchMode   mode,
-                                          string?      nullable_search,
-                                      ref string       current_path,
--                                     ref BrowserEntry search_entry)
-+                                         BrowserEntry search_entry)
-     {
-         string search;
-         switch (mode)
-         {
-             case SearchMode.EDIT_PATH_MOVE_END:
-                 search = nullable_search == null ? current_path : (!) nullable_search;
--                _prepare_move_end (ref search, ref search_entry);
-+                _prepare_move_end (ref search, search_entry);
-                 return;
- 
-             case SearchMode.EDIT_PATH_SELECT_ALL:
-                 search = nullable_search == null ? current_path : (!) nullable_search;
--                _prepare_search (ref search, ref search_entry);
-+                _prepare_search (ref search, search_entry);
-                 return;
- 
-             case SearchMode.EDIT_PATH_SELECT_LAST_WORD:
-                 search = current_path;
--                _prepare_select_last_word (ref search, ref search_entry);
-+                _prepare_select_last_word (ref search, search_entry);
-                 return;
- 
-             case SearchMode.SEARCH:
-                 search = "";
--                _prepare_search (ref search, ref search_entry);
-+                _prepare_search (ref search, search_entry);
-                 return;
- 
-             case SearchMode.UNCLEAR:
-@@ -210,19 +210,19 @@ private class PathEntry : Box, AdaptativeWidget
-         }
-     }
- 
--    private static inline void _prepare_move_end (ref string text, ref BrowserEntry search_entry)
-+    private static inline void _prepare_move_end (ref string text, BrowserEntry search_entry)
-     {
-         search_entry.text = text;
--        _entry_grab_focus_without_selecting (ref search_entry);
-+        _entry_grab_focus_without_selecting (search_entry);
-     }
- 
--    private static inline void _prepare_search (ref string text, ref BrowserEntry search_entry)
-+    private static inline void _prepare_search (ref string text, BrowserEntry search_entry)
-     {
-         search_entry.text = text;
-         search_entry.grab_focus ();
-     }
- 
--    private static inline void _prepare_select_last_word (ref string current_path, ref BrowserEntry search_entry)
-+    private static inline void _prepare_select_last_word (ref string current_path, BrowserEntry search_entry)
-     {
-         search_entry.move_cursor (MovementStep.DISPLAY_LINE_ENDS, -1, false);
-         search_entry.text = current_path;
-diff --git a/editor/registry-list.vala b/editor/registry-list.vala
-index 74b7f99..54aa6fa 100644
---- a/editor/registry-list.vala
-+++ b/editor/registry-list.vala
-@@ -291,9 +291,9 @@ private abstract class RegistryList : Grid, BrowsableView, AdaptativeWidget
- 
-     internal bool handle_copy_text (out string copy_text) // can compile with "private", but is public 1/2
-     {
--        return _handle_copy_text (out copy_text, ref key_list_box);
-+        return _handle_copy_text (out copy_text, key_list_box);
-     }
--    private bool _handle_copy_text (out string copy_text, ref ListBox key_list_box)
-+    private bool _handle_copy_text (out string copy_text, ListBox key_list_box)
-     {
-         ListBoxRow? selected_row = (ListBoxRow?) key_list_box.get_selected_row ();
-         if (selected_row == null)
-@@ -1138,7 +1138,7 @@ private abstract class RegistryList : Grid, BrowsableView, AdaptativeWidget
-     * * headers
-     \*/
- 
--    protected static bool is_first_row (int row_index, ref unowned ListBoxRow? before)
-+    protected static bool is_first_row (int row_index, ListBoxRow? before)
-     {
-         bool is_first_row = row_index == 0;
-         if (is_first_row != (before == null))
-diff --git a/editor/registry-search.vala b/editor/registry-search.vala
-index 220583f..eb8e6f2 100644
---- a/editor/registry-search.vala
-+++ b/editor/registry-search.vala
-@@ -48,7 +48,7 @@ private class RegistrySearch : RegistryList
- 
-     internal bool handle_alt_copy_text (out string copy_text)
-     {
--        return _handle_alt_copy_text (out copy_text, ref key_list_box);
-+        return _handle_alt_copy_text (out copy_text, key_list_box);
-     }
- 
-     internal void clean ()
-@@ -145,7 +145,7 @@ private class RegistrySearch : RegistryList
-     * * Keyboard calls
-     \*/
- 
--    private static bool _handle_alt_copy_text (out string copy_text, ref ListBox key_list_box)
-+    private static bool _handle_alt_copy_text (out string copy_text, ListBox key_list_box)
-     {
-         ListBoxRow? selected_row = key_list_box.get_selected_row ();
-         if (selected_row == null)
-@@ -521,7 +521,7 @@ private class RegistrySearch : RegistryList
-     private void update_row_header (ListBoxRow row, ListBoxRow? before)
-     {
-         int row_index = row.get_index ();
--        if (is_first_row (row_index, ref before))
-+        if (is_first_row (row_index, before))
-             return;
- 
-         if (search_is_path_search)
-diff --git a/editor/registry-view.vala b/editor/registry-view.vala
-index e0ff379..7d9eb1f 100644
---- a/editor/registry-view.vala
-+++ b/editor/registry-view.vala
-@@ -114,7 +114,7 @@ private class RegistryView : RegistryList
- 
-     private void update_row_header (ListBoxRow row, ListBoxRow? before)
-     {
--        if (is_first_row (row.get_index (), ref before))
-+        if (is_first_row (row.get_index (), before))
-             return;
-         update_row_header_with_context (row, (!) before, modifications_handler.model, /* local search header */ false);
-     }
--- 
-2.30.1
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.38.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.38.3.bb
similarity index 65%
rename from meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.38.2.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.38.3.bb
index 776558e..5b68467 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.38.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.38.3.bb
@@ -8,9 +8,7 @@
 
 inherit gnomebase vala gettext gsettings bash-completion
 
-SRC_URI += "file://0001-Don-t-alter-or-try-to-write-GtkChild-fields.patch"
-
-SRC_URI[archive.sha256sum] = "1253dad87e6213fbf313ff9ec9dc4358aa1b10261f28072c1dc0e0997b92f835"
+SRC_URI[archive.sha256sum] = "571af4c7dad4f049b53e6cd728b79addf08c27ddab6bc57b396d211866ee79e3"
 
 FILES_${PN} += " \
     ${datadir}/dbus-1 \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.38.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_40.1.bb
similarity index 85%
rename from meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.38.0.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/evince/evince_40.1.bb
index 9c1d864..3b1a978 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.38.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_40.1.bb
@@ -13,14 +13,18 @@
     gstreamer1.0-plugins-base \
     orc \
     adwaita-icon-theme \
+    libhandy \
     ${@bb.utils.contains('DISTRO_FEATURES','x11','gnome-desktop3','',d)} \
 "
 
 GNOMEBASEBUILDCLASS = "meson"
 
-inherit gnomebase itstool gnome-help pkgconfig gsettings gobject-introspection upstream-version-is-even gettext mime-xdg gtk-doc
+inherit gnomebase itstool gnome-help pkgconfig gsettings gobject-introspection gettext mime-xdg gtk-doc
 
-SRC_URI[archive.sha256sum] = "26df897a417545b476d2606b14731122e84278ae994bd64ea535449c3cf01948"
+def gnome_verdir(v):
+    return oe.utils.trim_version(v, 1)
+
+SRC_URI[archive.sha256sum] = "7a666363c350af2e3bbba7f14b3c1befc5012f9ed3d9d073447f4c59f33dcf2d"
 
 GTKDOC_MESON_OPTION = "gtk_doc"
 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc
index f39440c..870a9c0 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc
@@ -9,6 +9,5 @@
 
 inherit gnomebase upstream-version-is-even
 
-SRC_URI[archive.sha256sum] = "c555528c546d457be0dc0eaca5d766d4dfef7c408276cb05f9724c463bfe7fd9"
-PV = "3.36.5"
-
+SRC_URI[archive.sha256sum] = "eac75f348aa5defbe9473fa30ab6084635ee64d8e3eaaec60a62c27f149c3e22"
+PV = "3.40.1"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/file-roller/file-roller_3.36.3.bb b/meta-openembedded/meta-gnome/recipes-gnome/file-roller/file-roller_3.38.1.bb
similarity index 87%
rename from meta-openembedded/meta-gnome/recipes-gnome/file-roller/file-roller_3.36.3.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/file-roller/file-roller_3.38.1.bb
index 9af88f2..379857c 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/file-roller/file-roller_3.36.3.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/file-roller/file-roller_3.38.1.bb
@@ -13,7 +13,7 @@
 
 inherit gnomebase gsettings itstool gnome-help gettext upstream-version-is-even mime-xdg
 
-SRC_URI[archive.sha256sum] = "0959e10a5d7a7442809624be9879d95db462ca76e8c66ad6299310e6acdb81b7"
+SRC_URI[archive.sha256sum] = "94a0130e12d321aa119793a14d09716523e2e4a61f29570cee53fd88dd6abc57"
 
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'packagekit', '', d)}"
 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_3.36.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_40.1.bb
similarity index 64%
rename from meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_3.36.2.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_40.1.bb
index b20f204..ee94cdd 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_3.36.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_40.1.bb
@@ -16,12 +16,18 @@
     tepl \
 "
 
-inherit gnomebase gsettings itstool gnome-help gobject-introspection gtk-doc vala gettext features_check upstream-version-is-even mime-xdg python3targetconfig
+inherit gnomebase gsettings itstool gnome-help gobject-introspection gtk-doc vala gettext features_check mime-xdg python3targetconfig
+
+def gnome_verdir(v):
+    return oe.utils.trim_version(v, 1)
 
 REQUIRED_DISTRO_FEATURES = "x11"
 
-SRC_URI[archive.md5sum] = "438217bbbcf92a17c4f259b4a5426b03"
-SRC_URI[archive.sha256sum] = "6887554643c5b1b3862ac364d97b7b50224bff95e6758aeaa08f4a482b554197"
+SRC_URI[archive.sha256sum] = "55e394a82cb65678b1ab49526cf5bd43f00d8fba21476a4849051a8e137d3691"
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+UNKNOWN_CONFIGURE_WHITELIST_append = " introspection"
 
 GTKDOC_MESON_OPTION = "gtk_doc"
 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.12.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.12.2.bb
similarity index 69%
rename from meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.12.1.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.12.2.bb
index 12ea593..708523e 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.12.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.12.2.bb
@@ -9,8 +9,8 @@
 
 inherit gnomebase gobject-introspection gtk-doc
 
-SRC_URI[archive.md5sum] = "44a3cfeab1afd83a71e852835d24e656"
-SRC_URI[archive.sha256sum] = "8aeafd59653ea88f6b78cb03780ee9fd61a2f993070c5f0d0976bed93ac2bd77"
+SRC_URI[archive.md5sum] = "4c0cd962f021f937507904df147ea750"
+SRC_URI[archive.sha256sum] = "2322b552aca330eef79724a699c51a302345d5e074738578b398b7f2ff97944c"
 
 EXTRA_OEMESON = " \
     -Dvapi=false \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.3.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.3.2.bb
similarity index 66%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.3.1.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.3.2.bb
index 5e833a9..8eba859 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.3.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.3.2.bb
@@ -9,8 +9,8 @@
 
 inherit gnomebase gobject-introspection gtk-doc vala
 
-SRC_URI[archive.md5sum] = "3149496d0189623a8e1289bbab4d8385"
-SRC_URI[archive.sha256sum] = "0e78713e6f0de339fdee16bab82753ae290fe80fa7b4ba6e3db8c1465b81d0f8"
+SRC_URI[archive.md5sum] = "3c8da1a8489255f2aaa5fdb690308e5d"
+SRC_URI[archive.sha256sum] = "a48c4d5ce9a9ed05ba8bc8fdeb9af2d1a7bd8091c2911d6c37223c4f488f7c72"
 
 do_compile_prepend() {
     export GIR_EXTRA_LIBS_PATH="${B}/gnome-autoar/.libs"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.34.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.34.5.bb
similarity index 79%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.34.1.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.34.5.bb
index 77c89d9..31d3bf6 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.34.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.34.5.bb
@@ -18,7 +18,7 @@
 # gtk-icon-cache bbclass will take care of this for us.
 EXTRA_OEMESON = "-Dicon_update=false"
 
-SRC_URI[archive.md5sum] = "09b6bab7ceaafb35da766a5476fbc466"
-SRC_URI[archive.sha256sum] = "3ec91076c2822cd1f9abdc8e27663c3bda4c9c8a7a9773f9e92bfbf2b745d386"
+SRC_URI[archive.md5sum] = "d83faa54abaf64bb40b5313bc233e74e"
+SRC_URI[archive.sha256sum] = "6c949e52c8becc2054daacd604901f66ce5cf709a5fa91c4bb7cacc939b53ea9"
 
 RDEPENDS_${PN} += "bluez5"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_3.36.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_40.1.bb
similarity index 73%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_3.36.0.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_40.1.bb
index c250981..ef96632 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_3.36.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_40.1.bb
@@ -11,6 +11,7 @@
     libgee \
     libmpc \
     gtksourceview4 \
+    libhandy \
 "
 
 GIR_MESON_OPTION = 'disable-introspection'
@@ -19,12 +20,14 @@
 
 GNOMEBASEBUILDCLASS = "meson"
 
-inherit gnomebase gobject-introspection gnome-help vala gtk-icon-cache gettext features_check upstream-version-is-even
+inherit gnomebase gobject-introspection gnome-help vala gtk-icon-cache gettext features_check
+
+def gnome_verdir(v):
+    return oe.utils.trim_version(v, 1)
 
 REQUIRED_DISTRO_FEATURES = "x11"
 
-SRC_URI[archive.md5sum] = "71854fb58671b4a88ac990e2f2439e4f"
-SRC_URI[archive.sha256sum] = "a2e830f9c9856fad65dad1d6c0ae6abad0f0b496c9984ac005315c5cc4220db3"
+SRC_URI[archive.sha256sum] = "7fe6c561f7b1f485ac106219772e45cc135c983bfa4278dd2d3fd83b57ff6af6"
 
 FILES_${PN} += " \
     ${datadir}/dbus-1 \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_3.34.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_3.34.2.bb
deleted file mode 100644
index bb70ae7..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_3.34.2.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Access, organize and share your photos on GNOME"
-SECTION = "x11/gnome"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
-
-DEPENDS = " \
-    glib-2.0-native \
-    gdk-pixbuf-native \
-    librsvg-native \
-    gtk+3 \
-    babl \
-    gegl \
-    geocode-glib \
-    gnome-online-accounts \
-    grilo \
-    gsettings-desktop-schemas \
-    libdazzle \
-    libgdata \
-    gfbgraph \
-    tracker \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gettext upstream-version-is-even gnome-help features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.md5sum] = "1dd0d477eac4707e8cfe9f35e26d1f29"
-SRC_URI[archive.sha256sum] = "3c59c76ef28618ec055a1799d1040287b90a0b021feb0a02b1eac28e9c2eb41a"
-
-FILES_${PN} += " \
-    ${datadir}/dbus-1 \
-    ${datadir}/metainfo \
-    ${datadir}/gnome-shell \
-"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_40.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_40.0.bb
new file mode 100644
index 0000000..6b69c08
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_40.0.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Access, organize and share your photos on GNOME"
+SECTION = "x11/gnome"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+DEPENDS = " \
+    glib-2.0-native \
+    gdk-pixbuf-native \
+    librsvg-native \
+    gtk+3 \
+    babl \
+    gegl \
+    geocode-glib \
+    gnome-online-accounts \
+    grilo \
+    gsettings-desktop-schemas \
+    libdazzle \
+    libgdata \
+    gfbgraph \
+    tracker \
+    libhandy \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gettext gnome-help features_check
+
+def gnome_verdir(v):
+    return oe.utils.trim_version(v, 1)
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[archive.sha256sum] = "e02d73e138af8b2868b5cad7faa1bdd278aeade3b6c3c92836511a4e6f3af1af"
+
+do_install_append() {
+    # make gnome-photos available on all desktops
+    sed -i 's:OnlyShowIn=:#OnlyShowIn=:g' ${D}${datadir}/applications/org.gnome.Photos.desktop
+}
+
+FILES_${PN} += " \
+    ${datadir}/dbus-1 \
+    ${datadir}/metainfo \
+    ${datadir}/gnome-shell \
+"
+
+RRECOMMENDS_${PN} = "grilo-plugins"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.36.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_40.1.bb
similarity index 76%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.36.1.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_40.1.bb
index ddd1120..ecc5a09 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.36.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_40.1.bb
@@ -10,16 +10,19 @@
     libgtop \
     librsvg \
     polkit \
+    libhandy \
 "
 
 GNOMEBASEBUILDCLASS = "meson"
 
-inherit gnomebase gsettings gnome-help itstool gtk-icon-cache features_check gettext upstream-version-is-even
+inherit gnomebase gsettings gnome-help itstool gtk-icon-cache features_check gettext
 
 REQUIRED_DISTRO_FEATURES = "x11 polkit"
 
-SRC_URI[archive.md5sum] = "b1443ab12c3b7bcca940d28754e5b948"
-SRC_URI[archive.sha256sum] = "866b47ab0f4c75b0ec57d6300337a7373463aaad5df95eddfe5354c22be7bca1"
+def gnome_verdir(v):
+    return oe.utils.trim_version(v, 1)
+
+SRC_URI[archive.sha256sum] = "fdb30f4367907aab86d7c2bb76a7b773ba850b765c9666a39f42abfe22691d1a"
 
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
 PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins/0001-Avoid-running-trackertestutils.patch b/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins/0001-Avoid-running-trackertestutils.patch
new file mode 100644
index 0000000..a07cd49
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins/0001-Avoid-running-trackertestutils.patch
@@ -0,0 +1,34 @@
+From 9deaed70221a12e26f968be26233b75fa5669476 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sat, 15 May 2021 23:25:09 +0200
+Subject: [PATCH] Avoid running trackertestutils
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It breaks configuration:
+| ../grilo-plugins-0.3.13/tests/tracker3/meson.build:5:0: ERROR: Program '/usr/lib/tracker-3.0/trackertestutils/tracker-sandbox' not found
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 6a03778..17ef1e1 100644
+--- a/meson.build
++++ b/meson.build
+@@ -78,7 +78,7 @@ totem_plparser_dep = dependency('totem-plparser', version: '>= 3.4.1', required:
+ totem_plparser_mini_dep = dependency('totem-plparser-mini', version: '>= 3.4.1', required: false)
+ tracker_sparql_dep = dependency('tracker-sparql-2.0', version: '>= 2.3.0', required: false)
+ tracker3_dep = dependency('tracker-sparql-3.0', required: false)
+-tracker3_testutils_dep = dependency('tracker-testutils-3.0', required: false)
++tracker3_testutils_dep = dependency('tracker-testutils-3.0-avoid-find', required: false)
+ 
+ lua_dep = dependency('lua', version: '>= 5.3.0', required: false)
+ if not lua_dep.found()
+-- 
+2.31.1
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.13.bb b/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.13.bb
new file mode 100644
index 0000000..4ead998
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.13.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Grilo is a framework forsearching media content from various sources"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+DEPENDS = " \
+    glib-2.0-native \
+    gperf-native \
+    itstool-native \
+    grilo \
+    tracker \
+    lua \
+    liboauth \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gnome-help vala
+
+SRC_URI += "file://0001-Avoid-running-trackertestutils.patch"
+SRC_URI[archive.sha256sum] = "1c4305d67364a930543836cc1982f30e946973b8ff6af3efe31d87709ab520f8"
+
+FILES_${PN} += "${libdir}/grilo-0.3"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop/0001-fix-compile-error-for-cross-compile.patch b/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop/0001-fix-compile-error-for-cross-compile.patch
new file mode 100644
index 0000000..1bd6e10
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop/0001-fix-compile-error-for-cross-compile.patch
@@ -0,0 +1,37 @@
+From e865a93000913b4597607289356114cd159f4e28 Mon Sep 17 00:00:00 2001
+From: Your Name <you@example.com>
+Date: Fri, 21 May 2021 03:02:29 +0000
+Subject: [PATCH] fix compile error for cross compile
+
+On some distros, such as fedora32, cross compile failed with following
+error since host library is used. undefined reference to
+`stat64@GLIBC_2.33'
+
+According doc of ld, set searchdir begins with "=", but not hardcoded
+locations.
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/libgtop/-/merge_requests/26]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 472f44b..ed6a4d7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -270,8 +270,8 @@ AC_ARG_ENABLE(fatal-warnings,
+                         [Define to enable fatal warnings]))
+ 
+ dnl These definitions are expanded in make.
+-LIBGTOP_LIBS='-L$(libdir)'
+-LIBGTOP_INCS='-I$(includedir)/libgtop-2.0'
++LIBGTOP_LIBS='-L=$(libdir)'
++LIBGTOP_INCS='-I=$(includedir)/libgtop-2.0'
+ 
+ if test x$libgtop_have_sysinfo = xyes ; then
+   LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SYSINFO"
+-- 
+2.26.2
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb
index f0c9cdb..6d9398f 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb
@@ -1,4 +1,4 @@
-SUMMARY = "LibGTop2"
+SUMMARY = "A library for collecting system monitoring data"
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
 
@@ -8,9 +8,8 @@
 inherit features_check
 REQUIRED_DISTRO_FEATURES = "x11"
 
-SRC_URI[archive.md5sum] = "c6d67325cd97b2208b41e07e6cc7b947"
+SRC_URI += "file://0001-fix-compile-error-for-cross-compile.patch"
+
 SRC_URI[archive.sha256sum] = "78f3274c0c79c434c03655c1b35edf7b95ec0421430897fb1345a98a265ed2d4"
 
 DEPENDS = "glib-2.0 libxau"
-
-EXTRA_OEMAKE += "LIBGTOP_LIBS="
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libgweather/libgweather_3.36.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/libgweather/libgweather_3.36.2.bb
similarity index 78%
rename from meta-openembedded/meta-gnome/recipes-gnome/libgweather/libgweather_3.36.1.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/libgweather/libgweather_3.36.2.bb
index 3ee3829..c2cb2f1 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libgweather/libgweather_3.36.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libgweather/libgweather_3.36.2.bb
@@ -7,8 +7,8 @@
 
 inherit gnomebase gsettings gobject-introspection gettext gtk-doc vala features_check upstream-version-is-even
 
-SRC_URI[archive.md5sum] = "d6081108f9c224c5cb594f8ccb025db9"
-SRC_URI[archive.sha256sum] = "de2709f0ee233b20116d5fa9861d406071798c4aa37830ca25f5ef2c0083e450"
+SRC_URI[archive.md5sum] = "ff399cf89e97a3e574ae05db5617b96b"
+SRC_URI[archive.sha256sum] = "ee1201a8fc25c14e940d3b26db49a34947c8aebf67dee01ee67fbcb06ecb37a0"
 
 # gobject-introspection is mandatory and cannot be configured
 REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.36.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_40.0.bb
similarity index 81%
rename from meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.36.0.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_40.0.bb
index 8bca93f6..bfb52e5 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.36.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_40.0.bb
@@ -17,8 +17,10 @@
 
 inherit gnomebase gobject-introspection gtk-doc gettext features_check
 
-SRC_URI[archive.md5sum] = "00bb40dc6fab76af0da33e88a34b6378"
-SRC_URI[archive.sha256sum] = "bc508150b3ed5d22354b0e6774ad4eee465381ebc0ace45eb0e2d3a4186c925f"
+def gnome_verdir(v):
+    return oe.utils.trim_version(v, 1)
+
+SRC_URI[archive.sha256sum] = "30cb79a839f90cd66f3e202f3f98cb5166fa0cd9b92eb571ad9c470a43021d83"
 
 # libxres means x11 only
 REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_3.34.6.bb b/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_3.34.6.bb
index adbfcd6..c7f91f0 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_3.34.6.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_3.34.6.bb
@@ -27,7 +27,7 @@
 SRC_URI += "file://0001-EGL-Include-EGL-eglmesaext.h.patch"
 
 # x11 is still manadatory - see meson.build
-REQUIRED_DISTRO_FEATURES = "x11"
+REQUIRED_DISTRO_FEATURES = "x11 polkit"
 
 # systemd can be replaced by libelogind (not available atow - make systemd
 # mandatory distro feature)
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/0001-Drop-use-of-volatile.patch b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/0001-Drop-use-of-volatile.patch
deleted file mode 100644
index 4683142..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/0001-Drop-use-of-volatile.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 9ab5acb902a38b420592931ec9e46ccd0624035a Mon Sep 17 00:00:00 2001
-From: Ondrej Holy <oholy@redhat.com>
-Date: Wed, 13 Jan 2021 13:22:58 +0100
-Subject: [PATCH] Drop use of volatile
-
-The `fedora rawhide` CI job currently fails because of usage of the
-`volatile` qualifier. Let's drop the `volatile` qualifier as it doesn't
-help anyway. It was dropped in GLib as well, see:
-https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
-
-Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/1741
----
-Upstream-Status: Backport [https://github.com/GNOME/nautilus/commit/9b733dd9df9d6d9805c56749d05ada15a7560ef4]
- src/nautilus-enum-types.c.template | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/nautilus-enum-types.c.template b/src/nautilus-enum-types.c.template
-index 00155ca..9d8ac83 100644
---- a/src/nautilus-enum-types.c.template
-+++ b/src/nautilus-enum-types.c.template
-@@ -13,7 +13,7 @@
- GType
- @enum_name@_get_type (void)
- {
--    static volatile GType type_once = 0;
-+    static GType type_once = 0;
- 
-     if (g_once_init_enter (&type_once))
-     {
--- 
-2.30.1
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.36.3.bb b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_40.1.bb
similarity index 75%
rename from meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.36.3.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_40.1.bb
index cf138d9..75fc032 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.36.3.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_40.1.bb
@@ -13,16 +13,23 @@
     gsettings-desktop-schemas \
     gnome-autoar \
     tracker \
+    libhandy \
+    libportal \
 "
 
-inherit gnomebase gsettings gobject-introspection gtk-doc gettext features_check upstream-version-is-even mime-xdg
+inherit gnomebase gsettings gobject-introspection gtk-doc gettext features_check mime-xdg
 
-SRC_URI += "file://0001-Drop-use-of-volatile.patch"
-SRC_URI[archive.md5sum] = "c3c8dbb90d8eeed6c127aa568e131395"
-SRC_URI[archive.sha256sum] = "b6cafc7ab1e70a64383de391b6097fcccbf36b208f8502d8c46423224fd30ef8"
+def gnome_verdir(v):
+    return oe.utils.trim_version(v, 1)
+
+SRC_URI[archive.sha256sum] = "8ecfb90174a0bd5815b1ceb9cbfcd91fec0fb5e34907a4f2df2d05e5d6c99d33"
 
 REQUIRED_DISTRO_FEATURES = "x11"
 
+EXTRA_OEMESON += " \
+    -Dtests=none \
+"
+
 PACKAGECONFIG = "extensions"
 PACKAGECONFIG[extensions] = "-Dextensions=true,-Dextensions=false, gexiv2 gstreamer1.0-plugins-base"
 
@@ -30,6 +37,7 @@
     ${datadir}/dbus-1 \
     ${datadir}/metainfo \
     ${datadir}/gnome-shell \
+    ${datadir}/tracker3 \
 "
 
 # mandatory - not checked during configuration:
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tepl/tepl_4.4.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/tepl/tepl_4.4.0.bb
deleted file mode 100644
index 4120c62..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/tepl/tepl_4.4.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Tepl library eases the development of GtkSourceView-based projects"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = " \
-    glib-2.0-native \
-    gtk+3 \
-    gtksourceview4 \
-    amtk \
-    libxml2 \
-    uchardet \
-"
-
-inherit gnomebase gobject-introspection gettext
-
-SRC_URI[archive.md5sum] = "013ee8aae178f75cc74e05fac70786b3"
-SRC_URI[archive.sha256sum] = "e6f6673a8a27e8f280725db8fbacec79b20676ae0558755239d15a9808faa256"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tepl/tepl_6.00.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/tepl/tepl_6.00.0.bb
new file mode 100644
index 0000000..dd0242f
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/tepl/tepl_6.00.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Tepl library eases the development of GtkSourceView-based projects"
+LICENSE = "LGPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSES/LGPL-3.0-or-later.txt;md5=c51d3eef3be114124d11349ca0d7e117"
+
+DEPENDS = " \
+    glib-2.0-native \
+    gtk+3 \
+    gtksourceview4 \
+    amtk \
+    libxml2 \
+    uchardet \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gobject-introspection gettext features_check
+
+SRC_URI[archive.sha256sum] = "a86397a895dca9c0de7a5ccb063bda8f7ef691cccb950ce2cfdee367903e7a63"
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+UNKNOWN_CONFIGURE_WHITELIST_append = " introspection"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_2.3.5.bb b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.0.5.bb
similarity index 73%
rename from meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_2.3.5.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.0.5.bb
index 07fa10a..6672195 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_2.3.5.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.0.5.bb
@@ -13,9 +13,9 @@
 
 GNOMEBASEBUILDCLASS = "meson"
 
-inherit gnomebase gsettings gobject-introspection vala gtk-doc manpages bash-completion features_check
+inherit gnomebase gsettings gobject-introspection vala bash-completion features_check
 
-SRC_URI[archive.sha256sum] = "9509d37fb29acd233058f4df5bd1234b692ac6f946bc2e5f7b8dbf51dfe5b9fa"
+SRC_URI[archive.sha256sum] = "c9be14871b1398e6e656a354a8f8f59e69e93169017f2b28308ef439324fd12b"
 SRC_URI += "file://0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch"
 
 # gobject-introspection is mandatory and cannot be configured
@@ -24,34 +24,33 @@
 
 PACKAGECONFIG ??= " \
     ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "ffmpeg", "", d)} \
-    flac \
     gexiv2 \
     gstreamer \
     icu \
     libexif \
     libgsf \
     jpeg \
+    pdf \
     png \
     tiff \
     xml \
-    pdf \
 "
 
+PACKAGECONFIG[battery]     = "-Dbattery_detection=upower,-Dbattery_detection=none,upower"
 PACKAGECONFIG[ffmpeg]     = ",,ffmpeg"
-PACKAGECONFIG[flac]       = "-Dflac=enabled,-Dflac=disabled,flac"
 PACKAGECONFIG[gexiv2]     = ",,gexiv2"
 PACKAGECONFIG[gstreamer]  = ",,gstreamer1.0 gstreamer1.0-plugins-base"
 PACKAGECONFIG[gupnp]      = ",,gupnp-dlna"
+PACKAGECONFIG[gif]        = "-Dgif=enabled,-Dgif=disabled,giflib"
 PACKAGECONFIG[icu]        = ",,icu"
+PACKAGECONFIG[jpeg]       = "-Djpeg=enabled,-Djpeg=disabled,jpeg"
 PACKAGECONFIG[libexif]    = "-Dexif=enabled,-Dexif=disabled,libexif"
 PACKAGECONFIG[libgsf]     = "-Dgsf=enabled,-Dgsf=disabled,libgsf"
-PACKAGECONFIG[jpeg]       = "-Djpeg=enabled,-Djpeg=disabled,jpeg"
+PACKAGECONFIG[pdf]        = "-Dpdf=enabled,-Dpdf=disabled,poppler"
 PACKAGECONFIG[png]        = "-Dpng=enabled,-Dpng=disabled,libpng"
 PACKAGECONFIG[tiff]       = "-Dtiff=enabled,-Dtiff=disabled,tiff"
 PACKAGECONFIG[xml]        = "-Dxml=enabled,-Dxml=disabled,libxml2"
-PACKAGECONFIG[vorbis]     = "-Dvorbis=enabled,-Dvorbis=disabled,libvorbis"
-PACKAGECONFIG[pdf]        = "-Dpdf=enabled,-Dpdf=disabled,poppler"
-PACKAGECONFIG[upower]     = ",,upower"
+PACKAGECONFIG[networkmanager] = "-Dnetwork_manager=enabled,-Dnetwork_manager=disabled,networkmanger"
 
 # For security reasons it is strongly recommended to set add meta-security in
 # your layers and 'libseccomp' to PACKAGECONFIG".
@@ -60,12 +59,14 @@
 PACKAGECONFIG[rss]        = "-Dminer_rss=true,-Dminer_rss=false,libgrss"
 
 EXTRA_OEMESON += " \
-    -Dsystemd_user_services=${systemd_user_unitdir} \
+    -Dman=false \
+    -Dsystemd_user_services=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)} \
+    -Dsystemd_user_services_dir=${systemd_user_unitdir} \
 "
 
 FILES_${PN} += " \
     ${datadir}/dbus-1 \
-    ${datadir}/tracker \
-    ${libdir}/tracker-miners-2.0 \
+    ${datadir}/tracker3-miners \
+    ${libdir}/tracker-miners-3.0 \
     ${systemd_user_unitdir} \
 "
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_2.3.6.bb b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_2.3.6.bb
deleted file mode 100644
index 2c11976..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_2.3.6.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "Tracker is a file search engine"
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = " \
-    file://COPYING.GPL;md5=ee31012bf90e7b8c108c69f197f3e3a4 \
-    file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
-"
-
-DEPENDS = " \
-    libxml2-native \
-    dbus-native \
-    glib-2.0 \
-    sqlite3 \
-    libarchive \
-    dbus \
-    icu \
-    json-glib \
-    libsoup-2.4 \
-    libstemmer \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gobject-introspection vala gtk-doc manpages bash-completion features_check
-
-SRC_URI[archive.sha256sum] = "bd1eb4122135296fa7b57b1c3fa0ed602cf7d06c0b8e534d0bd17ff5f97feef2"
-
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-UNKNOWN_CONFIGURE_WHITELIST_append = " introspection"
-
-PACKAGECONFIG ??= "fts"
-PACKAGECONFIG[networkmanager] = "-Dnetwork_manager=enabled,-Dnetwork_manager=disabled,networkmanger"
-# full text search requires sqlite3 build with PACKAGECONFIG[fts5] set
-PACKAGECONFIG[fts] = "-Dfts=true,-Dfts=false"
-
-# set required cross property sqlite3_has_fts5
-do_write_config[vardeps] += "PACKAGECONFIG"
-do_write_config_append() {
-    echo "[properties]" > ${WORKDIR}/meson-tracker.cross
-    echo "sqlite3_has_fts5 = '${@bb.utils.contains('PACKAGECONFIG', 'fts', 'true', 'false', d)}'" >> ${WORKDIR}/meson-tracker.cross
-}
-
-EXTRA_OEMESON = "--cross-file ${WORKDIR}/meson-tracker.cross \
-                 -Dsystemd_user_services=${systemd_user_unitdir} \
-"
-
-FILES_${PN} += " \
-    ${datadir}/dbus-1 \
-    ${libdir}/tracker-2.0 \
-    ${systemd_user_unitdir} \
-"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.0.4.bb b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.0.4.bb
new file mode 100644
index 0000000..82e3d00
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.0.4.bb
@@ -0,0 +1,52 @@
+SUMMARY = "Tracker is a file search engine"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = " \
+    file://COPYING.GPL;md5=ee31012bf90e7b8c108c69f197f3e3a4 \
+    file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+"
+
+DEPENDS = " \
+    dbus-native \
+    glib-2.0 \
+    sqlite3 \
+    libarchive \
+    dbus \
+    icu \
+    json-glib \
+    libsoup-2.4 \
+    libstemmer \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gobject-introspection vala gtk-doc manpages bash-completion features_check
+
+SRC_URI[archive.sha256sum] = "c120d81f2df94aa794b1a7953b55cfa46de318ed68e6f3b5ad4fce0c729c2483"
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+UNKNOWN_CONFIGURE_WHITELIST_append = " introspection"
+
+# text search is not an option anymore and requires sqlite3 build with
+# PACKAGECONFIG[fts5] set (default)
+
+# set required cross property sqlite3_has_fts5
+do_write_config[vardeps] += "PACKAGECONFIG"
+do_write_config_append() {
+    echo "[properties]" > ${WORKDIR}/meson-tracker.cross
+    echo "sqlite3_has_fts5 = 'true'" >> ${WORKDIR}/meson-tracker.cross
+}
+
+EXTRA_OEMESON = " \
+    --cross-file ${WORKDIR}/meson-tracker.cross \
+    -Dman=false \
+    -Dsystemd_user_services=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)} \
+    -Dsystemd_user_services_dir=${systemd_user_unitdir} \
+"
+
+FILES_${PN} += " \
+    ${datadir}/dbus-1 \
+    ${datadir}/tracker3 \
+    ${libdir}/tracker-3.0 \
+    ${systemd_user_unitdir} \
+"
