notary: fix build
The package is broken on master for some time now: https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.notary.x86_64-linux/all The main reason for the breackage is that the `Makefile` script attempts to retrieve the latest git commit by using `git rev-parse` which breaks as `git` is not in the build environment. This could be fixed by using `?=` rather than `:=` for the `GITCOMMIT` variable in the `make` script to easily override `GITCOMMIT` in the `buildPhase`. See the Hydra logs for reference: https://nix-cache.s3.amazonaws.com/log/ib4qp8h4r8d830ra4fah38l7ybb82gp7-notary-0.6.0.drv Furthermore some refactoring was applied: * Activated the test suite for `cmd/notary` to confirm the basic functionality when building for NixOS. * Added {pre,post} hooks for `{build,install}Phase` * Added myself as maintainer to have more people available in case of further breakage.
This commit is contained in:
parent
8d6d1363de
commit
6a32965e17
|
@ -1,32 +1,42 @@
|
|||
{ stdenv, fetchFromGitHub, buildGoPackage, git, libtool }:
|
||||
{ stdenv, fetchFromGitHub, buildGoPackage, libtool }:
|
||||
|
||||
buildGoPackage rec {
|
||||
name = "notary-${version}";
|
||||
version = "0.6.0";
|
||||
gitcommit = "34f53ad";
|
||||
version = "0.6.1";
|
||||
gitcommit = "d6e1431f";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "theupdateframework";
|
||||
repo = "notary";
|
||||
rev = "v${version}";
|
||||
sha256 = "0lg7ab2agkk3rnladcvpdzk8cnf3m49qfm4sanh7yjvlvlv1wm4a";
|
||||
sha256 = "1ak9dk6vjny5069hp3w36dbjawcnaq82l3i2qvf7mn7zfglbsnf9";
|
||||
};
|
||||
|
||||
patches = [ ./no-git-usage.patch ];
|
||||
|
||||
buildInputs = [ libtool ];
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
cd go/src/github.com/theupdateframework/notary
|
||||
make client GITCOMMIT=${gitcommit}
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
goPackagePath = "github.com/theupdateframework/notary";
|
||||
|
||||
buildPhase = ''
|
||||
cd go/src/github.com/theupdateframework/notary
|
||||
make GITCOMMIT=${gitcommit} GITUNTRACKEDCHANGES= client
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -D bin/notary $bin/bin/notary
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -D bin/notary $bin/bin/notary
|
||||
doCheck = true;
|
||||
checkPhase = ''
|
||||
make test PKGS=github.com/theupdateframework/notary/cmd/notary
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = " Notary is a project that allows anyone to have trust over arbitrary collections of data";
|
||||
description = "Notary is a project that allows anyone to have trust over arbitrary collections of data";
|
||||
longDescription = ''
|
||||
The Notary project comprises a server and a client for running and
|
||||
interacting with trusted collections. See the service architecture
|
||||
|
@ -49,7 +59,7 @@ buildGoPackage rec {
|
|||
'';
|
||||
license = licenses.asl20;
|
||||
homepage = https://github.com/theupdateframework/notary;
|
||||
maintainers = with maintainers; [ vdemeester ];
|
||||
platforms = with platforms; unix;
|
||||
maintainers = with maintainers; [ vdemeester ma27 ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
15
pkgs/tools/security/notary/no-git-usage.patch
Normal file
15
pkgs/tools/security/notary/no-git-usage.patch
Normal file
|
@ -0,0 +1,15 @@
|
|||
diff --git a/Makefile b/Makefile
|
||||
index ab794165..0cbd047f 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -5,8 +5,8 @@ PREFIX?=$(shell pwd)
|
||||
# Add to compile time flags
|
||||
NOTARY_PKG := github.com/theupdateframework/notary
|
||||
NOTARY_VERSION := $(shell cat NOTARY_VERSION)
|
||||
-GITCOMMIT := $(shell git rev-parse --short HEAD)
|
||||
-GITUNTRACKEDCHANGES := $(shell git status --porcelain --untracked-files=no)
|
||||
+GITCOMMIT ?= $(shell git rev-parse --short HEAD)
|
||||
+GITUNTRACKEDCHANGES :=
|
||||
ifneq ($(GITUNTRACKEDCHANGES),)
|
||||
GITCOMMIT := $(GITCOMMIT)-dirty
|
||||
endif
|
Loading…
Reference in a new issue