Index | Thread | Search

From:
Johannes Thyssen Tishman <jtt@openbsd.org>
Subject:
[revision] productivity/baikal: Set cal:calendar-timezone to VTIMEZONE
To:
ports@openbsd.org
Cc:
Martin Reindl <martin@catai.org>
Date:
Sun, 1 Feb 2026 12:36:49 +0000

Download raw body.

Thread
Please find below a revision for productivity/baikal.

As explained in [0], when creating a calendar via the web interface,
Baikal sets cal:calendar-timezone to a timezone string instead of a
VTIMEZONE. This causes an issue when querying events with expanded
recurrences, see [1].

The patch below --proposed in [0], but not yet merged-- fixes this
issue. Tested on my server running Baikal.

Ok?

[0] https://github.com/sabre-io/Baikal/issues/1241
[1] https://github.com/sabre-io/Baikal/issues/1325

Index: Makefile
===================================================================
RCS file: /cvs/ports/productivity/baikal/Makefile,v
diff -u -p -r1.42 Makefile
--- Makefile	25 Dec 2025 08:35:45 -0000	1.42
+++ Makefile	1 Feb 2026 12:24:09 -0000
@@ -2,6 +2,7 @@ COMMENT=	lightweight CalDAV and CardDAV 
 
 VERSION=	0.11.1
 DISTNAME=	baikal-${VERSION}
+REVISION=	0
 SITES=		https://github.com/sabre-io/Baikal/releases/download/${VERSION}/
 DISTFILES=	${DISTNAME}.zip
 CATEGORIES=	productivity www
Index: patches/patch-vendor_sabre_dav_lib_CalDAV_Plugin_php
===================================================================
RCS file: patches/patch-vendor_sabre_dav_lib_CalDAV_Plugin_php
diff -N patches/patch-vendor_sabre_dav_lib_CalDAV_Plugin_php
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-vendor_sabre_dav_lib_CalDAV_Plugin_php	1 Feb 2026 12:24:09 -0000
@@ -0,0 +1,22 @@
+https://github.com/sabre-io/Baikal/issues/1241
+https://github.com/sabre-io/Baikal/issues/1325
+
+Index: vendor/sabre/dav/lib/CalDAV/Plugin.php
+--- vendor/sabre/dav/lib/CalDAV/Plugin.php.orig
++++ vendor/sabre/dav/lib/CalDAV/Plugin.php
+@@ -508,14 +508,7 @@ class Plugin extends DAV\ServerPlugin
+             $tzProp = '{'.self::NS_CALDAV.'}calendar-timezone';
+             $tzResult = $this->server->getProperties($path, [$tzProp]);
+             if (isset($tzResult[$tzProp])) {
+-                // This property contains a VCALENDAR with a single
+-                // VTIMEZONE.
+-                $vtimezoneObj = VObject\Reader::read($tzResult[$tzProp]);
+-                $calendarTimeZone = $vtimezoneObj->VTIMEZONE->getTimeZone();
+-
+-                // Destroy circular references so PHP will garbage collect the
+-                // object.
+-                $vtimezoneObj->destroy();
++                $calendarTimeZone = new DateTimeZone($tzResult[$tzProp]);
+             } else {
+                 // Defaulting to UTC.
+                 $calendarTimeZone = new DateTimeZone('UTC');