summaryrefslogtreecommitdiff
path: root/pkgs/vdirsyncer-patch.nix
diff options
context:
space:
mode:
authorBen Sima <ben@bensima.com>2025-12-22 13:31:18 -0500
committerBen Sima <ben@bensima.com>2025-12-22 13:31:18 -0500
commit8d9eb8fa8a20efa4c4318fccef97d21fe91fb092 (patch)
treedfe4a94d2c20653a1b97add68d96ebf5a2856317 /pkgs/vdirsyncer-patch.nix
parentf8d26da7c054c0a4c89ab12993e00f74ea9260a1 (diff)
Switch to kitty terminal with ef-dream theme, emoji support
- Replace urxvt with kitty as default terminal - Add ef-dream inspired color scheme to kitty - Configure emoji font fallback with Noto Color Emoji - Update xmonad.hs to use kitty for terminal and scratchpads - Fix cmdtree to fetch from GitHub instead of broken git://jb55.com - Remove urxvt.nix and alacritty config - Add AGENTS.md for agentic coding tools
Diffstat (limited to 'pkgs/vdirsyncer-patch.nix')
-rw-r--r--pkgs/vdirsyncer-patch.nix28
1 files changed, 28 insertions, 0 deletions
diff --git a/pkgs/vdirsyncer-patch.nix b/pkgs/vdirsyncer-patch.nix
new file mode 100644
index 0000000..9265e21
--- /dev/null
+++ b/pkgs/vdirsyncer-patch.nix
@@ -0,0 +1,28 @@
+# Patch vdirsyncer to skip NotFoundError on missing items instead of failing.
+# This works around a Google CalDAV bug where recurring events with modified
+# instances are listed but cannot be fetched.
+# See: https://github.com/pimutils/vdirsyncer/issues/467
+{ lib, vdirsyncer }:
+
+vdirsyncer.overrideAttrs (oldAttrs: {
+ patches = (oldAttrs.patches or []) ++ [
+ (builtins.toFile "skip-notfound.patch" ''
+--- a/vdirsyncer/storage/dav.py
++++ b/vdirsyncer/storage/dav.py
+@@ -550,8 +550,11 @@ class DAVStorage(Storage):
+ else:
+ rv.append((href, Item(raw), etag))
+ for href in hrefs_left:
+- raise exceptions.NotFoundError(href)
+-
++ dav_logger.warning(
++ f"Skipping {href!r}, server listed but did not return it. "
++ "This is often caused by corrupted recurring events in Google Calendar."
++ )
++
+ for href, item, etag in rv:
+ yield href, item, etag
+
+'')
+ ];
+})