diff options
Diffstat (limited to 'pkgs')
| -rw-r--r-- | pkgs/cmdtree.nix | 7 | ||||
| -rw-r--r-- | pkgs/vdirsyncer-patch.nix | 28 |
2 files changed, 32 insertions, 3 deletions
diff --git a/pkgs/cmdtree.nix b/pkgs/cmdtree.nix index 1c991bb..20254b3 100644 --- a/pkgs/cmdtree.nix +++ b/pkgs/cmdtree.nix @@ -1,9 +1,10 @@ -{stdenv, fetchgit, xorg }: +{stdenv, fetchFromGitHub, xorg }: stdenv.mkDerivation { name = "cmdtree"; - src = fetchgit { - url = "git://jb55.com/cmdtree"; + src = fetchFromGitHub { + owner = "jb55"; + repo = "cmdtree"; rev = "a7a1f07bfca23397d0d645cb7dbc3b7a63e521cb"; sha256 = "sha256-QPUJUNiLzva+Mtbhic/yv6u2VIFdXkiZCtSz4eWSxzc="; }; 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 + +'') + ]; +}) |
