From b06f909b2ba970cff08f5f095907bbcb2683f60b Mon Sep 17 00:00:00 2001
From: iznogood <>
Date: Mar 22 2023 21:45:14 +0000
Subject: Update feedbackd to version 0.1.0 / rev 5 via SR 1073757
https://build.opensuse.org/request/show/1073757
by user iznogood + dimstar_suse
---
diff --git a/packages/f/feedbackd/.files b/packages/f/feedbackd/.files
index 53da530..e277929 100644
Binary files a/packages/f/feedbackd/.files and b/packages/f/feedbackd/.files differ
diff --git a/packages/f/feedbackd/.rev b/packages/f/feedbackd/.rev
index 42ce544..a56a22b 100644
--- a/packages/f/feedbackd/.rev
+++ b/packages/f/feedbackd/.rev
@@ -31,4 +31,12 @@
1072600
+
+ 7384067b204b1565ba4c4b19e7fb3808
+ 0.1.0
+
+ dimstar_suse
+
+ 1073757
+
diff --git a/packages/f/feedbackd/109.patch b/packages/f/feedbackd/109.patch
new file mode 100644
index 0000000..afad39b
--- /dev/null
+++ b/packages/f/feedbackd/109.patch
@@ -0,0 +1,295 @@
+From 847c21d78ea61faa101f58792389373ce2109d54 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Guido=20G=C3=BCnther?=
+Date: Mon, 13 Mar 2023 15:24:16 +0100
+Subject: [PATCH 1/9] build: Avoid meson deprecation warning
+
+---
+ libfeedback/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libfeedback/meson.build b/libfeedback/meson.build
+index 09a495c..27d94c6 100644
+--- a/libfeedback/meson.build
++++ b/libfeedback/meson.build
+@@ -87,7 +87,6 @@ if introspection
+ '--quiet',
+ '-DLIBFEEDBACK_COMPILATION',
+ '-DLIBFEEDBACK_USE_UNSTABLE_API',
+- '--warn-error',
+ '--warn-all',
+ ]
+
+@@ -104,6 +103,7 @@ if introspection
+ install_dir_gir : girdir,
+ install_dir_typelib : typelibdir,
+ extra_args : libfeedback_gir_extra_args,
++ fatal_warnings : true,
+ )
+
+ if get_option('vapi')
+--
+GitLab
+
+
+From 64076e5ad08dd297a1d602b4a37b640e9a03c784 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Guido=20G=C3=BCnther?=
+Date: Mon, 13 Mar 2023 15:24:17 +0100
+Subject: [PATCH 2/9] fbd-event: Simplify
+
+Gbp-Dch: Ignore
+---
+ src/fbd-event.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/src/fbd-event.c b/src/fbd-event.c
+index 96e1c6d..5791d2f 100644
+--- a/src/fbd-event.c
++++ b/src/fbd-event.c
+@@ -376,8 +376,6 @@ fbd_event_remove_feedback (FbdEvent *self, FbdFeedbackBase *feedback)
+ void
+ fbd_event_run_feedbacks (FbdEvent *self)
+ {
+- GSList *l;
+-
+ g_return_if_fail (FBD_IS_EVENT (self));
+
+ g_debug ("Running %d feedbacks for event %d", g_slist_length (self->feedbacks), self->id);
+@@ -392,7 +390,7 @@ fbd_event_run_feedbacks (FbdEvent *self)
+ g_source_set_name_by_id (self->timeout_id, "event timeout source");
+ }
+
+- for (l = self->feedbacks; l; l = l->next) {
++ for (GSList *l = self->feedbacks; l; l = l->next) {
+ FbdFeedbackBase *fb = FBD_FEEDBACK_BASE (l->data);
+ fbd_feedback_run (fb);
+ }
+--
+GitLab
+
+
+From 03b0f4c2aa35548e0655db002b21e1e02dd8210e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Guido=20G=C3=BCnther?=
+Date: Mon, 13 Mar 2023 15:24:18 +0100
+Subject: [PATCH 3/9] fbd-event: Make sure we iterate the list safely
+
+When all feedbacks are done the event signals "feedbacks-ended" which
+lets the manager dispose the feedback. When all feedbacks end instantly
+and synchronously (as is the case with the dummy feedback) this triggers
+the disposal of the event within the loop leading to a crash.
+
+Make sure the object doesn't go away be referencing it during the loop
+iteration.
+
+We didn't see this before as glib's slice allocator for lists papered
+over this for us.
+
+Closes: https://source.puri.sm/Librem5/feedbackd/-/issues/69
+---
+ src/fbd-event.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/fbd-event.c b/src/fbd-event.c
+index 5791d2f..917b5e2 100644
+--- a/src/fbd-event.c
++++ b/src/fbd-event.c
+@@ -390,10 +390,12 @@ fbd_event_run_feedbacks (FbdEvent *self)
+ g_source_set_name_by_id (self->timeout_id, "event timeout source");
+ }
+
++ g_object_ref (self);
+ for (GSList *l = self->feedbacks; l; l = l->next) {
+ FbdFeedbackBase *fb = FBD_FEEDBACK_BASE (l->data);
+ fbd_feedback_run (fb);
+ }
++ g_object_unref (self);
+ }
+
+ /**
+--
+GitLab
+
+
+From 460985cfa03ad0a091bb2acf0d283606edb95593 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Guido=20G=C3=BCnther?=
+Date: Mon, 13 Mar 2023 15:24:20 +0100
+Subject: [PATCH 4/9] tests: Don't leak json string
+
+---
+ tests/test-fbd-feedback-theme.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/tests/test-fbd-feedback-theme.c b/tests/test-fbd-feedback-theme.c
+index c5cb636..5bd00da 100644
+--- a/tests/test-fbd-feedback-theme.c
++++ b/tests/test-fbd-feedback-theme.c
+@@ -37,10 +37,10 @@ test_fbd_feedback_theme_profiles (void)
+ "event-name", "event2",
+ NULL);
+ g_autoptr(FbdFeedbackTheme) theme = fbd_feedback_theme_new (THEME_NAME);
+-
+ FbdFeedbackProfile *profile_full = fbd_feedback_profile_new ("full");
+ FbdFeedbackProfile *profile_quiet = fbd_feedback_profile_new ("quiet");
+ FbdFeedbackProfile *profile;
++ g_autofree char *json = NULL;
+
+ fbd_feedback_profile_add_feedback (profile_quiet, FBD_FEEDBACK_BASE(quiet_fb1));
+ fbd_feedback_profile_add_feedback (profile_quiet, FBD_FEEDBACK_BASE(quiet_fb2));
+@@ -55,7 +55,8 @@ test_fbd_feedback_theme_profiles (void)
+ profile = fbd_feedback_theme_get_profile (theme, "full");
+ g_assert_true (FBD_IS_FEEDBACK_PROFILE (profile));
+
+- g_print ("%s\n", json_gobject_to_data (G_OBJECT(theme), NULL));
++ json = json_gobject_to_data (G_OBJECT(theme), NULL);
++ g_print ("%s\n", json);
+ }
+
+
+--
+GitLab
+
+
+From 1933a23172e231917bd51af76d19b204c7c08805 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Guido=20G=C3=BCnther?=
+Date: Mon, 13 Mar 2023 15:24:20 +0100
+Subject: [PATCH 5/9] tests: Don't leak profiles and test that
+
+We finalize the theme first so the last reference is dropped when
+finalizing the profiles.
+---
+ tests/test-fbd-feedback-theme.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/tests/test-fbd-feedback-theme.c b/tests/test-fbd-feedback-theme.c
+index 5bd00da..f1987be 100644
+--- a/tests/test-fbd-feedback-theme.c
++++ b/tests/test-fbd-feedback-theme.c
+@@ -36,7 +36,7 @@ test_fbd_feedback_theme_profiles (void)
+ g_autoptr (FbdFeedbackDummy) full_fb2 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY,
+ "event-name", "event2",
+ NULL);
+- g_autoptr(FbdFeedbackTheme) theme = fbd_feedback_theme_new (THEME_NAME);
++ FbdFeedbackTheme *theme = fbd_feedback_theme_new (THEME_NAME);
+ FbdFeedbackProfile *profile_full = fbd_feedback_profile_new ("full");
+ FbdFeedbackProfile *profile_quiet = fbd_feedback_profile_new ("quiet");
+ FbdFeedbackProfile *profile;
+@@ -57,6 +57,10 @@ test_fbd_feedback_theme_profiles (void)
+
+ json = json_gobject_to_data (G_OBJECT(theme), NULL);
+ g_print ("%s\n", json);
++
++ g_assert_finalize_object (theme);
++ g_assert_finalize_object (profile_full);
++ g_assert_finalize_object (profile_quiet);
+ }
+
+
+--
+GitLab
+
+
+From 5206c3aae53f52a7629eb891027adcf850ed3f6e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Guido=20G=C3=BCnther?=
+Date: Mon, 13 Mar 2023 15:24:21 +0100
+Subject: [PATCH 6/9] feedback-profile: Don't leak json array when serializing
+ profile
+
+json_array_add_element doesn't transfer ownership
+---
+ src/fbd-feedback-profile.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/fbd-feedback-profile.c b/src/fbd-feedback-profile.c
+index 28d6f29..94cbb36 100644
+--- a/src/fbd-feedback-profile.c
++++ b/src/fbd-feedback-profile.c
+@@ -58,7 +58,7 @@ fbd_feedback_profile_serializable_serialize_property (JsonSerializable *serializ
+ GHashTableIter iter;
+ gpointer key;
+ FbdFeedbackProfile *profile;
+- JsonArray *array = json_array_sized_new (FBD_FEEDBACK_PROFILE_N_PROFILES);
++ g_autoptr (JsonArray) array = json_array_sized_new (FBD_FEEDBACK_PROFILE_N_PROFILES);
+
+ g_hash_table_iter_init (&iter, self->feedbacks);
+ while (g_hash_table_iter_next (&iter, (gpointer *)&key, (gpointer *) &profile)) {
+--
+GitLab
+
+
+From 7becab334633747f9b73edfaa103ffecc15a9bfb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Guido=20G=C3=BCnther?=
+Date: Mon, 13 Mar 2023 15:24:21 +0100
+Subject: [PATCH 7/9] feedback-theme: Don't leak json array when serializing
+ profile
+
+json_array_add_element doesn't transfer ownership.
+---
+ src/fbd-feedback-theme.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/fbd-feedback-theme.c b/src/fbd-feedback-theme.c
+index 3274920..966feb8 100644
+--- a/src/fbd-feedback-theme.c
++++ b/src/fbd-feedback-theme.c
+@@ -53,7 +53,7 @@ fbd_theme_serializable_serialize_property (JsonSerializable *serializable,
+ GHashTableIter iter;
+ gpointer key;
+ FbdFeedbackProfile *profile;
+- JsonArray *array = json_array_sized_new (FBD_FEEDBACK_PROFILE_N_PROFILES);
++ g_autoptr (JsonArray) array = json_array_sized_new (FBD_FEEDBACK_PROFILE_N_PROFILES);
+
+ g_hash_table_iter_init (&iter, self->profiles);
+ while (g_hash_table_iter_next (&iter, (gpointer *)&key, (gpointer *) &profile)) {
+--
+GitLab
+
+
+From 3d7c4b376a7c94a6566f883d6d17bb9085428c43 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Guido=20G=C3=BCnther?=
+Date: Mon, 13 Mar 2023 15:24:23 +0100
+Subject: [PATCH 8/9] feedback-theme: Don't leak parent name
+
+---
+ src/fbd-feedback-theme.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/fbd-feedback-theme.c b/src/fbd-feedback-theme.c
+index 966feb8..e416f89 100644
+--- a/src/fbd-feedback-theme.c
++++ b/src/fbd-feedback-theme.c
+@@ -182,6 +182,7 @@ fbd_feedback_theme_finalize (GObject *object)
+ {
+ FbdFeedbackTheme *self = FBD_FEEDBACK_THEME (object);
+
++ g_clear_pointer (&self->parent_name, g_free);
+ g_clear_pointer (&self->name, g_free);
+
+ G_OBJECT_CLASS (fbd_feedback_theme_parent_class)->finalize (object);
+--
+GitLab
+
+
+From f9c65381db4382c087835c728b0ad990b1e6cea0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Guido=20G=C3=BCnther?=
+Date: Mon, 13 Mar 2023 15:24:24 +0100
+Subject: [PATCH 9/9] tests/profile: Don't leak json node
+
+---
+ tests/test-fbd-feedback-profile.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/test-fbd-feedback-profile.c b/tests/test-fbd-feedback-profile.c
+index 96fd247..546cc90 100644
+--- a/tests/test-fbd-feedback-profile.c
++++ b/tests/test-fbd-feedback-profile.c
+@@ -68,7 +68,7 @@ test_fbd_feedback_profile_parse (void)
+ " } ";
+ g_autoptr (GError) err = NULL;
+ g_autoptr (FbdFeedbackProfile) profile = NULL;
+- JsonNode *node;
++ g_autoptr (JsonNode) node = NULL;
+ FbdFeedbackBase *fb;
+
+ node = json_from_string(json, &err);
+--
+GitLab
+
diff --git a/packages/f/feedbackd/feedbackd.changes b/packages/f/feedbackd/feedbackd.changes
index a10a042..5fe5e0f 100644
--- a/packages/f/feedbackd/feedbackd.changes
+++ b/packages/f/feedbackd/feedbackd.changes
@@ -1,4 +1,9 @@
-------------------------------------------------------------------
+Tue Mar 21 21:00:37 UTC 2023 - Bjørn Lie
+
+- Add 109.patch: Fix build with glib-2.76.x
+
+-------------------------------------------------------------------
Thu Mar 16 18:00:24 UTC 2023 - Bjørn Lie
- Update to version 0.1.0:
diff --git a/packages/f/feedbackd/feedbackd.spec b/packages/f/feedbackd/feedbackd.spec
index dee97ff..8e99fa9 100644
--- a/packages/f/feedbackd/feedbackd.spec
+++ b/packages/f/feedbackd/feedbackd.spec
@@ -25,6 +25,8 @@ Summary: Feedback library for GNOME
License: GPL-3.0-only AND LGPL-2.1-only
URL: https://source.puri.sm/Librem5/feedbackd
Source0: %{name}-%{version}.tar.xz
+# PATCH-FIX-UPSTREAM 109.patch -- Fix build with glib-2.76.x
+Patch0: https://source.puri.sm/Librem5/feedbackd/-/merge_requests/109.patch
BuildRequires: c_compiler
BuildRequires: dbus-1