[Pkg-sogo-maintainers] Bug#1033870: sogo: CalDAV/calendar not working with Apple Calendar on macOS Ventura/Sonoma
Manfred Stock
m-debian at nfred.ch
Thu Oct 12 10:17:47 BST 2023
Package: sogo
Version: 5.8.0-1
Followup-For: Bug #1033870
Control: tags -1 patch upstream
Dear Maintainer,
as expected, the Apple Calendar on the new macOS Sonoma is also not
fully able to talk to SOGo in the versions provided by Debian in
Bullseye and Bookworm. There's also an upstream bug report [1] regarding
macOS Sonoma in addition to the original report [2] about macOS Ventura.
According to these, the latest version of SOGo (5.9.0 at the time of
this writing) fixes the support for macOS Ventura and Sonoma. The
original bug report also contains a message which says that the original
issue was found and fixed [3] and links to the corresponding commit [4].
When looking at the SOGo repo on Salsa, I noticed there's a 'bookworm'
branch which contains the patches to add macOS Ventura support.
Unfortunately, I wasn't able to build that branch (patch didn't seem to
apply, might also be my fault though) and because of the way the
original upstream fix was implemented, it wouldn't have solved the issue
for macOS Sonoma anyway without further changes. However, the
aforementioned patch [4] which seems to solve the original issue
basically removed the original approach to fixing the issue and replaced
it with a simpler solution. So I tried to extract the essence of this
patch and built the package based on version 5.8.0-1 of the sources on
Salsa [6]. And according to our (limited) tests with macOS Ventura and
Sonoma, this indeed solves the issue. My patch should be attached to
this email.
Cheers,
Manfred
[1] https://bugs.sogo.nu/view.php?id=5870
[2] https://bugs.sogo.nu/view.php?id=5639
[3] https://bugs.sogo.nu/view.php?id=5639#c17217
[4] https://github.com/Alinto/sogo/commit/4f7c73143f38b1e7e00a51b9457b55ce609a02a9
[5] https://salsa.debian.org/debian/sogo/-/tree/bookworm
[6] https://salsa.debian.org/debian/sogo/-/tree/debian/5.8.0-1
-------------- next part --------------
From: Manfred Stock <m-debian at nfred.ch>
Date: Mon, 9 Oct 2023 15:35:00 +0200
Subject: fix(calendar): Fix MacOS X Ventura calendar support. Fixes #5639
This patch is based on upstream commit 4f7c73143f which fixes support
for macOS Ventura, Sonoma and maybe future macOS versions. Apparently,
the upstream commit also removes the older approach to fix that support,
so this patch only contains what is assumed to be the essence of the
fix.
---
SoObjects/Appointments/SOGoAppointmentFolder.m | 2 +-
SoObjects/SOGo/WORequest+SOGo.h | 1 +
SoObjects/SOGo/WORequest+SOGo.m | 17 +++++++++++++++++
3 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/SoObjects/Appointments/SOGoAppointmentFolder.m b/SoObjects/Appointments/SOGoAppointmentFolder.m
index 2c43800..bd3dae6 100644
--- a/SoObjects/Appointments/SOGoAppointmentFolder.m
+++ b/SoObjects/Appointments/SOGoAppointmentFolder.m
@@ -2529,7 +2529,7 @@ firstInstanceCalendarDateRange: (NGCalendarDateRange *) fir
resourcetype. Anything else will prevent the iPhone from querying the
collection. */
request = [context request];
- if (!([request isIPhone] || [request isICal4]))
+ if (!([request isIPhone] || [request isICal4] || [request isMacOSXCalendar]))
{
gdRT = (NSArray *) [self groupDavResourceType];
gdVEventCol = [NSArray arrayWithObjects: [gdRT objectAtIndex: 0],
diff --git a/SoObjects/SOGo/WORequest+SOGo.h b/SoObjects/SOGo/WORequest+SOGo.h
index 9ae6c91..6199eb9 100644
--- a/SoObjects/SOGo/WORequest+SOGo.h
+++ b/SoObjects/SOGo/WORequest+SOGo.h
@@ -35,6 +35,7 @@
- (BOOL) isMacOSXAddressBookApp;
- (BOOL) isIPhoneAddressBookApp;
- (BOOL) isAndroid;
+- (BOOL) isMacOSXCalendar;
@end
diff --git a/SoObjects/SOGo/WORequest+SOGo.m b/SoObjects/SOGo/WORequest+SOGo.m
index 1091650..c6f76d4 100644
--- a/SoObjects/SOGo/WORequest+SOGo.m
+++ b/SoObjects/SOGo/WORequest+SOGo.m
@@ -242,5 +242,22 @@
return ([[cc userAgent] rangeOfString: @"Android"].location != NSNotFound);
}
+- (BOOL) isMacOSXCalendar
+{
+ WEClientCapabilities *cc;
+ BOOL b;
+
+ cc = [self clientCapabilities];
+
+ b = (
+ (
+ nil != [cc userAgent]
+ && [[cc userAgent] rangeOfString: @"macOS"].location != NSNotFound
+ && [[cc userAgent] rangeOfString: @"dataaccessd"].location != NSNotFound
+ )
+ );
+
+ return b;
+}
@end
More information about the Pkg-sogo-maintainers
mailing list