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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
{ depot, pkgs, ... }:

let
  sharedDeps = import ../go-deps.nix { inherit depot pkgs; };
  # Borrow golang-x-text from timetrack's deps (v0.30.0 satisfies go-imap's v0.3.7 requirement)
  timtrackDeps = import ../timetrack/go-deps.nix { inherit depot pkgs; };
in
sharedDeps // rec {
  inherit (timtrackDeps) golang-x-text;

  # github.com/emersion/go-sasl - SASL authentication (go-imap dependency, no deps of its own)
  emersion-go-sasl = depot.nix.buildGo.external {
    path = "github.com/emersion/go-sasl";
    src = pkgs.fetchFromGitHub {
      owner = "emersion";
      repo = "go-sasl";
      rev = "b788ff22d5a6";
      sha256 = "1072khf8p8slgxhiijfs3ja253g8776av3jixv46almblyspnabs";
    };
  };

  # github.com/emersion/go-smtp - SMTP client/server library
  emersion-go-smtp = depot.nix.buildGo.external {
    path = "github.com/emersion/go-smtp";
    src = pkgs.fetchFromGitHub {
      owner = "emersion";
      repo = "go-smtp";
      rev = "v0.24.0";
      sha256 = "0aw2alxv4764kzfvsjhng3i10yjr20827m5h02by4q2pxz5zxhmm";
    };
    deps = [ emersion-go-sasl ];
  };

  # github.com/emersion/go-message - MIME/mail message parsing
  emersion-go-message = depot.nix.buildGo.external {
    path = "github.com/emersion/go-message";
    src = pkgs.fetchFromGitHub {
      owner = "emersion";
      repo = "go-message";
      rev = "v0.18.1";
      sha256 = "0gzcgrs5sava8fpybp5cw6f3zqnbz096wf93hcgkrg94wl1g7kqb";
    };
    deps = [
      golang-x-text.unicode.norm
      golang-x-text.encoding
      golang-x-text.encoding.charmap
      golang-x-text.encoding.htmlindex
      golang-x-text.encoding.ianaindex
      golang-x-text.encoding.unicode
      golang-x-text.transform
    ];
  };

  # github.com/emersion/go-imap - IMAP4rev1 client/server library
  emersion-go-imap = depot.nix.buildGo.external {
    path = "github.com/emersion/go-imap";
    src = pkgs.fetchFromGitHub {
      owner = "emersion";
      repo = "go-imap";
      rev = "v1.2.1";
      sha256 = "0ak2ysvfcc9w0g1070msis8x9sh6gzvf0nd65ks594siwbmqddw8";
    };
    deps = [
      emersion-go-message
      emersion-go-sasl
      golang-x-text.encoding
      golang-x-text.encoding.charmap
      golang-x-text.encoding.htmlindex
      golang-x-text.encoding.ianaindex
      golang-x-text.transform
    ];
  };
}