diff --git a/meson.build b/meson.build
index 2d969da25e0d40f9d8eda5eb1e05f265e82f77dd..bb97c76f63208367bb656db5cd70ddcc14342b20 100644
--- a/meson.build
+++ b/meson.build
@@ -33,8 +33,8 @@ else
   conf.set_quoted('VERSION', meson.project_version())
 endif
 
-cflags = ['-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_66',
-          '-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_66',
+cflags = ['-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_70',
+          '-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_70',
           '-DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_4_12',
           '-DGDK_VERSION_MAX_ALLOWED=GDK_VERSION_4_12',
           '-Wno-overlength-strings',
diff --git a/src/rugby-app-window.c b/src/rugby-app-window.c
index 12636346d8bf05cc4455d24051356e172f0244b6..c3c41c44c5ddab6070d3b94c31ae7a2c4dacc422 100644
--- a/src/rugby-app-window.c
+++ b/src/rugby-app-window.c
@@ -26,7 +26,7 @@ struct _RugbyAppWindow
     GtkCustomFilter *try_filter;
 };
 
-G_DEFINE_TYPE (RugbyAppWindow, rugby_app_window, ADW_TYPE_APPLICATION_WINDOW)
+G_DEFINE_FINAL_TYPE (RugbyAppWindow, rugby_app_window, ADW_TYPE_APPLICATION_WINDOW)
 
 static void
 list_store_items_changed_cb (              GListModel     *model,
diff --git a/src/rugby-list-store.c b/src/rugby-list-store.c
index 6fe3590d35e2763125d86ea8379ea7cda892b09a..5e518929a002efdb85a32261680c4dfcef734ed5 100644
--- a/src/rugby-list-store.c
+++ b/src/rugby-list-store.c
@@ -22,9 +22,9 @@ struct _RugbyListStore
 
 static void rugby_list_store_list_model_iface_init (GListModelInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE (RugbyListStore, rugby_list_store, G_TYPE_OBJECT,
-                         G_IMPLEMENT_INTERFACE (G_TYPE_LIST_MODEL,
-                                                rugby_list_store_list_model_iface_init))
+G_DEFINE_FINAL_TYPE_WITH_CODE (RugbyListStore, rugby_list_store, G_TYPE_OBJECT,
+                               G_IMPLEMENT_INTERFACE (G_TYPE_LIST_MODEL,
+                                                      rugby_list_store_list_model_iface_init))
 
 enum
 {
diff --git a/src/rugby-possibility-widget.c b/src/rugby-possibility-widget.c
index a08148c20456134d05dd0bc0ca6329e8c825c7a5..cd6b8ae6df8e9fddfa4d03737020534854daf4b1 100644
--- a/src/rugby-possibility-widget.c
+++ b/src/rugby-possibility-widget.c
@@ -19,7 +19,7 @@ struct _RugbyPossibilityWidget
     RugbyPossibility *possibility;
 };
 
-G_DEFINE_TYPE (RugbyPossibilityWidget, rugby_possibility_widget, GTK_TYPE_WIDGET)
+G_DEFINE_FINAL_TYPE (RugbyPossibilityWidget, rugby_possibility_widget, GTK_TYPE_WIDGET)
 
 enum
 {
diff --git a/src/rugby-possibility.c b/src/rugby-possibility.c
index 335646102800627fcfd1cd28ff639c9e01102286..c5a2ad3c864dfd582a586d43c9285a58bc998ee9 100644
--- a/src/rugby-possibility.c
+++ b/src/rugby-possibility.c
@@ -16,7 +16,7 @@ struct _RugbyPossibility
     int kicks;
 };
 
-G_DEFINE_TYPE (RugbyPossibility, rugby_possibility, G_TYPE_OBJECT)
+G_DEFINE_FINAL_TYPE (RugbyPossibility, rugby_possibility, G_TYPE_OBJECT)
 
 enum
 {
diff --git a/src/rugby-pref-dialog.c b/src/rugby-pref-dialog.c
index dcd30f42de76651cd9eff861f427fff219a2870d..e52b25266f93ecf86c528698d9c8c37451f2d3d7 100644
--- a/src/rugby-pref-dialog.c
+++ b/src/rugby-pref-dialog.c
@@ -17,7 +17,7 @@ struct _RugbyPrefDialog
   GSettings *settings;
 };
 
-G_DEFINE_TYPE (RugbyPrefDialog, rugby_pref_dialog, ADW_TYPE_PREFERENCES_DIALOG)
+G_DEFINE_FINAL_TYPE (RugbyPrefDialog, rugby_pref_dialog, ADW_TYPE_PREFERENCES_DIALOG)
 
 static void
 rugby_pref_dialog_dispose (GObject *object)