lilyp pushed a commit to branch gnome-team
in repository guix.
commit 2a94f278c26df91895c804534c9e724e3eae285b
Author: Liliana Marie Prikler <[email protected]>
AuthorDate: Sun Oct 20 13:38:17 2024 +0200
gnu: gjs: Fix build.
* gnu/packages/patches/gjs-fix-closure-annotations.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it here.
* gnu/packages/gnome.scm (gjs)[patches]: Use it here.
---
gnu/local.mk | 1 +
gnu/packages/gnome.scm | 2 +
.../patches/gjs-fix-closure-annotations.patch | 99 ++++++++++++++++++++++
3 files changed, 102 insertions(+)
diff --git a/gnu/local.mk b/gnu/local.mk
index d31879aeea..8af760bc34 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1435,6 +1435,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 2589b9ffe6..90aaa9689c 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7849,6 +7849,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