biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / skopeo / default.nix
blobb8f4ab5dc68dbb35dddf9992d5c8d69f972bf637
1 { lib
2 , stdenv
3 , buildGoModule
4 , fetchFromGitHub
5 , gpgme
6 , lvm2
7 , btrfs-progs
8 , pkg-config
9 , go-md2man
10 , installShellFiles
11 , makeWrapper
12 , fuse-overlayfs
13 , dockerTools
14 , runCommand
15 , testers
16 , skopeo
19 buildGoModule rec {
20   pname = "skopeo";
21   version = "1.15.0";
23   src = fetchFromGitHub {
24     rev = "v${version}";
25     owner = "containers";
26     repo = "skopeo";
27     hash = "sha256-GMZjmKM2bFv57b2u7VjiA2OF6gD7vtoQ3ofS2rQfNrk=";
28   };
30   outputs = [ "out" "man" ];
32   vendorHash = null;
34   doCheck = false;
36   nativeBuildInputs = [ pkg-config go-md2man installShellFiles makeWrapper ];
38   buildInputs = [ gpgme ]
39     ++ lib.optionals stdenv.isLinux [ lvm2 btrfs-progs ];
41   buildPhase = ''
42     runHook preBuild
43     patchShebangs .
44     make bin/skopeo completions docs
45     runHook postBuild
46   '';
48   installPhase = ''
49     runHook preInstall
50     PREFIX=${placeholder "out"} make install-binary install-completions install-docs
51     install ${passthru.policy}/default-policy.json -Dt $out/etc/containers
52   '' + lib.optionalString stdenv.isLinux ''
53     wrapProgram $out/bin/skopeo \
54       --prefix PATH : ${lib.makeBinPath [ fuse-overlayfs ]}
55   '' + ''
56     runHook postInstall
57   '';
59   passthru = {
60     policy = runCommand "policy" { } ''
61       install ${src}/default-policy.json -Dt $out
62     '';
63     tests = {
64       version = testers.testVersion {
65         package = skopeo;
66       };
67       inherit (dockerTools.examples) testNixFromDockerHub;
68     };
69   };
71   meta = with lib; {
72     changelog = "https://github.com/containers/skopeo/releases/tag/${src.rev}";
73     description = "A command line utility for various operations on container images and image repositories";
74     mainProgram = "skopeo";
75     homepage = "https://github.com/containers/skopeo";
76     maintainers = with maintainers; [ lewo developer-guy ] ++ teams.podman.members;
77     license = licenses.asl20;
78   };