biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / tools / virtualization / distrobuilder / default.nix
blobb2927b7c50000f67cedf4913d27e7785f00d62cb
1 { lib
2 , buildGoModule
3 , callPackage
4 , cdrkit
5 , coreutils
6 , debootstrap
7 , fetchFromGitHub
8 , gnupg
9 , gnutar
10 , hivex
11 , makeWrapper
12 , nixosTests
13 , pkg-config
14 , squashfsTools
15 , stdenv
16 , wimlib
19 let
20   bins = [
21     coreutils
22     debootstrap
23     gnupg
24     gnutar
25     squashfsTools
26   ] ++ lib.optionals stdenv.hostPlatform.isx86_64 [
27     # repack-windows deps
28     cdrkit
29     hivex
30     wimlib
31   ];
33 buildGoModule rec {
34   pname = "distrobuilder";
35   version = "3.0";
37   vendorHash = "sha256-pFrEkZnrcx0d3oM1klQrNHH+MiLvO4V1uFQdE0kXUqM=";
39   src = fetchFromGitHub {
40     owner = "lxc";
41     repo = "distrobuilder";
42     rev = "refs/tags/distrobuilder-${version}";
43     sha256 = "sha256-JfME9VaqaQnrhnzhSLGUy9uU+tki1hXdnwqBUD/5XH0=";
44     fetchSubmodules = false;
45   };
47   buildInputs = bins;
50   # tests require a local keyserver (mkg20001/nixpkgs branch distrobuilder-with-tests) but gpg is currently broken in tests
51   doCheck = false;
53   nativeBuildInputs = [
54     pkg-config
55     makeWrapper
56   ] ++ bins;
58   postInstall = ''
59     wrapProgram $out/bin/distrobuilder --prefix PATH ":" ${lib.makeBinPath bins}
60   '';
62   passthru = {
63     tests = {
64       incus-legacy-init = nixosTests.incus.container-legacy-init;
65       incus-systemd-init = nixosTests.incus.container-systemd-init;
66     };
68     generator = callPackage ./generator.nix { inherit src version; };
69   };
71   meta = {
72     description = "System container image builder for LXC and LXD";
73     homepage = "https://github.com/lxc/distrobuilder";
74     license = lib.licenses.asl20;
75     maintainers = lib.teams.lxc.members;
76     platforms = lib.platforms.linux;
77     mainProgram = "distrobuilder";
78   };