summaryrefslogtreecommitdiff
path: root/overlays/etesync-dav/default.nix
blob: 378fa753ee83ce2fc52d2a05678188326aab11b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
{ final, prev, ... }: {
  etesync-dav =
    let
      inherit (final) lib stdenv python39 radicale3 callPackage;

      python = python39.override {
        packageOverrides = self: super: {
          flask-wtf = super.flask-wtf.overridePythonAttrs (old: rec {
            version = "0.15.1";
            src = old.src.override {
              inherit version;
              sha256 = "ff177185f891302dc253437fe63081e7a46a4e99aca61dfe086fb23e54fff2dc";
            };
            doCheck = false;
            disabledTests = [
              "test_outside_request"
            ];
            patches = [ ];
          });
          etebase = python.pkgs.callPackage ./etebase.nix { python39 = python; openssl = final.openssl_1_1; };
        };
      };
    in python.pkgs.buildPythonApplication rec {
      pname = "etesync-dav";
      version = "0.32.1";

      src = python.pkgs.fetchPypi {
        inherit pname version;
        sha256 = "a4e2ee83932755d29ac39c1e74005ec289880fd2d4d2164f09fe2464a294d720";
      };

      propagatedBuildInputs = with python.pkgs; [
        appdirs
        etebase
        etesync
        flask
        flask-wtf
        msgpack
        pysocks
        setuptools
        (python.pkgs.toPythonModule (radicale3.override { python3 = python; }))
        requests
      ] ++ requests.optional-dependencies.socks;

      doCheck = false;

      meta = with lib; {
        homepage = "https://www.etesync.com/";
        description = "Secure, end-to-end encrypted, and privacy respecting sync for contacts, calendars and tasks";
        license = licenses.gpl3;
        maintainers = with maintainers; [ thyol valodim ];
        broken = stdenv.isDarwin; # pyobjc-framework-Cocoa is missing
      };
    };
}