summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/gnome.scm2
-rw-r--r--gnu/packages/patches/gjs-fix-closure-annotations.patch99
3 files changed, 102 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index a58a7387cb..6aff6e271f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1442,6 +1442,7 @@ dist_patch_DATA = \
%D%/packages/patches/ghostscript-no-header-uuid.patch \
%D%/packages/patches/ghostscript-no-header-creationdate.patch \
%D%/packages/patches/git-filter-repo-generate-doc.patch \
+ %D%/packages/patches/gjs-fix-closure-annotations.patch \
%D%/packages/patches/gklib-suitesparse.patch \
%D%/packages/patches/glib-appinfo-watch.patch \
%D%/packages/patches/glib-skip-failing-test.patch \
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index b8466d8da3..a7d6c4d9f9 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7853,6 +7853,8 @@ configuration program to choose applications starting on login.")
(sha256
(base32
"0knkbczic9874r2mnhc8yh9w63bmj574b7528ql0x3lf40nzcjx5"))
+ ;; TODO: Remove when updating to 1.82.0.
+ (patches (search-patches "gjs-fix-closure-annotations.patch"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/patches/gjs-fix-closure-annotations.patch b/gnu/packages/patches/gjs-fix-closure-annotations.patch
new file mode 100644
index 0000000000..1b440ef9da
--- /dev/null
+++ b/gnu/packages/patches/gjs-fix-closure-annotations.patch
@@ -0,0 +1,99 @@
+From 1df5d72d8df383199dcd88cd1d16209617bf32ca Mon Sep 17 00:00:00 2001
+From: Philip Chimento <[email protected]>
+Date: Sat, 27 Jul 2024 20:17:39 -0700
+Subject: [PATCH] GjsPrivate: Fix closure annotations
+
+Apparently the closure annotation can be omitted if the parameter is named
+"user_data". If it is needed because the parameter is not named
+"user_data" then the annotation should be on the callback argument and
+refer to the user data argument.
+---
+ libgjs-private/gjs-util.c | 10 +++++-----
+ libgjs-private/gjs-util.h | 16 ++++++++--------
+ 2 files changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/libgjs-private/gjs-util.c b/libgjs-private/gjs-util.c
+index b264aec1e..ae65287f5 100644
+--- a/libgjs-private/gjs-util.c
++++ b/libgjs-private/gjs-util.c
+@@ -235,7 +235,7 @@ void gjs_gtk_container_child_set_property(GObject* container, GObject* child,
+ * @store: a #GListStore
+ * @item: the new item
+ * @compare_func: (scope call): pairwise comparison function for sorting
+- * @user_data: (closure): user data for @compare_func
++ * @user_data: user data for @compare_func
+ *
+ * Inserts @item into @store at a position to be determined by the
+ * @compare_func.
+@@ -258,7 +258,7 @@ unsigned int gjs_list_store_insert_sorted(GListStore *store, GObject *item,
+ * gjs_list_store_sort:
+ * @store: a #GListStore
+ * @compare_func: (scope call): pairwise comparison function for sorting
+- * @user_data: (closure): user data for @compare_func
++ * @user_data: user data for @compare_func
+ *
+ * Sort the items in @store according to @compare_func.
+ */
+@@ -270,7 +270,7 @@ void gjs_list_store_sort(GListStore *store, GjsCompareDataFunc compare_func,
+ /**
+ * gjs_gtk_custom_sorter_new:
+ * @sort_func: (nullable) (scope call): function to sort items
+- * @user_data: (closure): user data for @compare_func
++ * @user_data: user data for @sort_func
+ * @destroy: destroy notify for @user_data
+ *
+ * Creates a new `GtkSorter` that works by calling @sort_func to compare items.
+@@ -305,7 +305,7 @@ GObject* gjs_gtk_custom_sorter_new(GjsCompareDataFunc sort_func,
+ * gjs_gtk_custom_sorter_set_sort_func:
+ * @sorter: a `GtkCustomSorter`
+ * @sort_func: (nullable) (scope call): function to sort items
+- * @user_data: (closure): user data to pass to @sort_func
++ * @user_data: user data to pass to @sort_func
+ * @destroy: destroy notify for @user_data
+ *
+ * Sets (or unsets) the function used for sorting items.
+@@ -423,7 +423,7 @@ void gjs_log_set_writer_default() {
+ /**
+ * gjs_log_set_writer_func:
+ * @func: (scope notified): callback with log data
+- * @user_data: (closure): user data for @func
++ * @user_data: user data for @func
+ * @user_data_free: (destroy user_data_free): destroy for @user_data
+ *
+ * Sets a given function as the writer function for structured logging,
+diff --git a/libgjs-private/gjs-util.h b/libgjs-private/gjs-util.h
+index 7ee83e0d8..11b7c7cbc 100644
+--- a/libgjs-private/gjs-util.h
++++ b/libgjs-private/gjs-util.h
+@@ -124,11 +124,11 @@ typedef gboolean (*GjsBindingTransformFunc)(GBinding* binding,
+ * @target:
+ * @target_property:
+ * @flags:
+- * @to_callback: (scope notified) (nullable):
+- * @to_data: (closure to_callback):
++ * @to_callback: (scope notified) (nullable) (closure to_data):
++ * @to_data:
+ * @to_notify: (destroy to_data):
+- * @from_callback: (scope notified) (nullable):
+- * @from_data: (closure from_callback):
++ * @from_callback: (scope notified) (nullable) (closure from_data):
++ * @from_data:
+ * @from_notify: (destroy from_data):
+ *
+ * Returns: (transfer none):
+@@ -149,11 +149,11 @@ GBinding* gjs_g_object_bind_property_full(
+ * @target:
+ * @target_property:
+ * @flags:
+- * @to_callback: (scope notified) (nullable):
+- * @to_data: (closure to_callback):
++ * @to_callback: (scope notified) (nullable) (closure to_data):
++ * @to_data:
+ * @to_notify: (destroy to_data):
+- * @from_callback: (scope notified) (nullable):
+- * @from_data: (closure from_callback):
++ * @from_callback: (scope notified) (nullable) (closure from_data):
++ * @from_data:
+ * @from_notify: (destroy from_data):
+ */
+ GJS_EXPORT \ No newline at end of file