new file mode 100644
@@ -0,0 +1,44 @@
+From 91eaa9221b45b506d7a5d84a9ec8c204b5c8c34f Mon Sep 17 00:00:00 2001
+From: Xi Ruoyao <xry111@xry111.site>
+Date: Fri, 8 May 2026 13:13:37 +0800
+Subject: [PATCH] calendar-server: Fix build failure with libical 4
+
+Fix the following build error with libical 4 due to function signature changes:
+
+ error: passing argument 4 of 'get_time_from_property' from incompatible pointer type [-Wincompatible-pointer-types]
+ note: expected 'ICalTime * (*)(ICalProperty *)' but argument is of type 'ICalTime * (*)(const ICalProperty *)'
+
+Link: https://github.com/libical/libical/blob/4.0/docs/MigrationGuide_to_4.md
+Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4215>
+
+Only the gnome-shell-calendar-server.c hunk of the upstream commit is taken;
+src/calendar-server/reminder-watcher.c does not exist in the 50.x series.
+
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/b34766f3992c7616b7816a47249fb463c053e5fa]
+---
+ src/calendar-server/gnome-shell-calendar-server.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/src/calendar-server/gnome-shell-calendar-server.c b/src/calendar-server/gnome-shell-calendar-server.c
+index 0b2f88eb7..622c16181 100644
+--- a/src/calendar-server/gnome-shell-calendar-server.c
++++ b/src/calendar-server/gnome-shell-calendar-server.c
+@@ -112,11 +112,17 @@ typedef struct
+ time_t end_time;
+ } CalendarAppointment;
+
++#if ICAL_CHECK_VERSION(4, 0, 0)
++typedef ICalTime * (* GetICalPropFunc) (const ICalProperty *prop);
++#else
++typedef ICalTime * (* GetICalPropFunc) (ICalProperty *prop);
++#endif
++
+ static gboolean
+ get_time_from_property (ECalClient *cal,
+ ICalComponent *icomp,
+ ICalPropertyKind prop_kind,
+- ICalTime * (* get_prop_func) (ICalProperty *prop),
++ GetICalPropFunc get_prop_func,
+ ICalTimezone *default_zone,
+ ICalTime **out_itt,
+ ICalTimezone **out_timezone)
similarity index 86%
rename from meta-gnome/recipes-gnome/gnome-shell/gnome-shell_51.0.bb
rename to meta-gnome/recipes-gnome/gnome-shell/gnome-shell_50.4.bb
@@ -31,7 +31,8 @@ GIR_MESON_OPTION = ""
REQUIRED_DISTRO_FEATURES += "gobject-introspection-data"
SRC_URI += "file://0001-shell-app-usage.c-only-include-x11-headers-if-HAVE_X.patch"
-SRC_URI[archive.sha256sum] = "2179bab13af353427065096af8bf3d30da7b86e0c516e5ba86a14998af9575f6"
+SRC_URI += "file://0002-calendar-server-Fix-build-failure-with-libical-4.patch"
+SRC_URI[archive.sha256sum] = "c531939539db316a41aef23670370abd1330d3254f84bcb0f9f4dae5d6e362cf"
PACKAGECONFIG ??= " \
camera-monitor \
@@ -43,6 +44,7 @@ PACKAGECONFIG ??= " \
"
PACKAGECONFIG[bluetooth] = ",,gnome-bluetooth"
PACKAGECONFIG[camera-monitor] = "-Dcamera_monitor=true, -Dcamera_monitor=false, pipewire"
+PACKAGECONFIG[extensions-app] = "-Dextensions_app=true, -Dextensions_app=false"
PACKAGECONFIG[extensions-tool] = "-Dextensions_tool=true, -Dextensions_tool=false, gnome-autoar json-glib libsoup-3.0"
PACKAGECONFIG[nm] = "-Dnetworkmanager=true, -Dnetworkmanager=false, networkmanager libsecret, networkmanager"
PACKAGECONFIG[portal-helper] = "-Dportal_helper=true, -Dportal_helper=false"
@@ -96,6 +98,9 @@ RDEPENDS:${PN} += " \
librsvg-gtk \
"
+# The extensions app is a GJS application and pulls libadwaita at runtime only.
+RDEPENDS:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'extensions-app', 'libadwaita', '', d)}"
+
PACKAGES =+ "${PN}-tools ${PN}-gsettings"
FILES:${PN}-tools = "${bindir}/*-tool"
RDEPENDS:${PN}-tools = "python3-core"
This reverts commit d22efe5c4c2252226b8644ee805863d3c3b5e446. gnome-shell 51.0 needs mutter >= 51.0, which goes back to 50.4 on blacksail. AI-Generated: Uses Claude Code (Claude Opus 5.5) --- ...ver-Fix-build-failure-with-libical-4.patch | 44 +++++++++++++++++++ ...nome-shell_51.0.bb => gnome-shell_50.4.bb} | 7 ++- 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0002-calendar-server-Fix-build-failure-with-libical-4.patch rename meta-gnome/recipes-gnome/gnome-shell/{gnome-shell_51.0.bb => gnome-shell_50.4.bb} (86%)