1{
2 lib,
3 rustPlatform,
4 fetchFromGitHub,
5 libz,
6 zstd,
7 pkg-config,
8 openssl,
9 glib,
10 ostree-full,
11 versionCheckHook,
12}:
13
14rustPlatform.buildRustPackage rec {
15 pname = "bootc";
16 version = "1.5.1";
17
18 cargoHash = "sha256-+FxydTK0Dmcj+doHMSoTgiues7Rrwxv/D+BOq4siKCk=";
19 doInstallCheck = true;
20
21 src = fetchFromGitHub {
22 owner = "bootc-dev";
23 repo = "bootc";
24 rev = "v${version}";
25 hash = "sha256-LmhgCiVFbhrePV/A/FaNjD7VytUZqSm9VDU+1z0O98U=";
26 };
27
28 nativeBuildInputs = [ pkg-config ];
29
30 buildInputs = [
31 libz
32 zstd
33 openssl
34 glib
35 ostree-full
36 ];
37
38 checkFlags = [
39 # These all require a writable /var/tmp
40 "--skip=test_cli_fns"
41 "--skip=test_diff"
42 "--skip=test_tar_export_reproducible"
43 "--skip=test_tar_export_structure"
44 "--skip=test_tar_import_empty"
45 "--skip=test_tar_import_export"
46 "--skip=test_tar_import_signed"
47 "--skip=test_tar_write"
48 "--skip=test_tar_write_tar_layer"
49 ];
50
51 nativeInstallCheckInputs = [
52 versionCheckHook
53 ];
54
55 meta = {
56 description = "Boot and upgrade via container images";
57 homepage = "https://bootc-dev.github.io/bootc";
58 license = lib.licenses.mit;
59 mainProgram = "bootc";
60 maintainers = with lib.maintainers; [ thesola10 ];
61 platforms = lib.platforms.linux;
62 };
63}