1{ lib, fetchFromGitHub, buildGoPackage, libtool }:
2
3buildGoPackage rec {
4 pname = "notary";
5 version = "0.6.1";
6 gitcommit = "d6e1431f";
7
8 src = fetchFromGitHub {
9 owner = "theupdateframework";
10 repo = "notary";
11 rev = "v${version}";
12 sha256 = "1ak9dk6vjny5069hp3w36dbjawcnaq82l3i2qvf7mn7zfglbsnf9";
13 };
14
15 patches = [ ./no-git-usage.patch ];
16
17 buildInputs = [ libtool ];
18 buildPhase = ''
19 runHook preBuild
20 cd go/src/github.com/theupdateframework/notary
21 SKIPENVCHECK=1 make client GITCOMMIT=${gitcommit}
22 runHook postBuild
23 '';
24
25 goPackagePath = "github.com/theupdateframework/notary";
26
27 installPhase = ''
28 runHook preInstall
29 install -D bin/notary $out/bin/notary
30 runHook postInstall
31 '';
32
33 #doCheck = true; # broken by tzdata: 2018g -> 2019a
34 checkPhase = ''
35 make test PKGS=github.com/theupdateframework/notary/cmd/notary
36 '';
37
38 meta = with lib; {
39 description = "A project that allows anyone to have trust over arbitrary collections of data";
40 longDescription = ''
41 The Notary project comprises a server and a client for running and
42 interacting with trusted collections. See the service architecture
43 documentation for more information.
44
45 Notary aims to make the internet more secure by making it easy for people
46 to publish and verify content. We often rely on TLS to secure our
47 communications with a web server which is inherently flawed, as any
48 compromise of the server enables malicious content to be substituted for
49 the legitimate content.
50
51 With Notary, publishers can sign their content offline using keys kept
52 highly secure. Once the publisher is ready to make the content available,
53 they can push their signed trusted collection to a Notary Server.
54
55 Consumers, having acquired the publisher's public key through a secure
56 channel, can then communicate with any notary server or (insecure) mirror,
57 relying only on the publisher's key to determine the validity and
58 integrity of the received content.
59 '';
60 license = licenses.asl20;
61 homepage = "https://github.com/theupdateframework/notary";
62 maintainers = with maintainers; [ vdemeester ];
63 platforms = platforms.unix;
64 };
65}