nixpkgs/pkgs/tools/misc/trdl-client/default.nix

71 lines
1.7 KiB
Nix

{ lib
, buildGoModule
, fetchFromGitHub
, testers
, trdl-client
}:
buildGoModule rec {
pname = "trdl-client";
version = "0.6.5";
src = fetchFromGitHub {
owner = "werf";
repo = "trdl";
rev = "v${version}";
hash = "sha256-jJwRIfxmjlhfS/0+IN2IdQPlO9FkTb64PWUiLwkarfM=";
};
sourceRoot = "${src.name}/client";
vendorHash = "sha256-f7FPeR+us3WvwqzcSQLbkKv905CCIAAm+HNV2FFF8OY=";
subPackages = [ "cmd/trdl" ];
CGO_ENABLED = 0;
ldflags = [
"-s"
"-w"
"-X github.com/werf/trdl/client/pkg/trdl.Version=${src.rev}"
];
tags = [
"dfrunmount"
"dfssh"
];
# There are no tests for cmd/trdl.
doCheck = false;
passthru.tests.version = testers.testVersion {
package = trdl-client;
command = "trdl version";
version = "v${version}";
};
meta = with lib; {
description = ''
The universal solution for delivering your software updates securely from
a trusted The Update Framework (TUF) repository
'';
longDescription = ''
trdl is an Open Source solution providing a secure channel for delivering
updates from the Git repository to the end user.
The project team releases new versions of the software and switches them
in the release channels. Git acts as the single source of truth while
Vault is used as a tool to verify operations as well as populate and
maintain the TUF repository.
The user selects a release channel, continuously receives the latest
software version from the TUF repository, and uses it.
'';
homepage = "https://trdl.dev";
changelog = "https://github.com/werf/trdl/releases/tag/${src.rev}";
license = licenses.asl20;
maintainers = with maintainers; [ azahi ];
mainProgram = "trdl";
};
}