nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 118 lines 3.1 kB view raw
1{ 2 lib, 3 rustPlatform, 4 fetchFromGitHub, 5 pkg-config, 6 shared-mime-info, 7 installShellFiles, 8 scdoc, 9 bzip2, 10 openssl, 11 sqlite, 12 xz, 13 zstd, 14 stdenv, 15 buildPackages, 16 versionCheckHook, 17 nixosTests, 18 nix-update-script, 19}: 20 21rustPlatform.buildRustPackage (finalAttrs: { 22 pname = "rebuilderd"; 23 version = "0.25.0"; 24 25 src = fetchFromGitHub { 26 owner = "kpcyrd"; 27 repo = "rebuilderd"; 28 tag = "v${finalAttrs.version}"; 29 hash = "sha256-BuL9s3ewZ1NvR9GG51TVrAncB0PR78Wuw8by+loSP8Q="; 30 }; 31 32 postPatch = '' 33 substituteInPlace tools/src/args.rs \ 34 --replace-fail "/etc/rebuilderd-sync.conf" '${placeholder "out"}/etc/rebuilderd-sync.conf' 35 36 substituteInPlace worker/src/config.rs \ 37 --replace-fail 'from("/etc/rebuilderd-worker.conf")' 'from("${placeholder "out"}/etc/rebuilderd-worker.conf")' 38 39 substituteInPlace worker/src/proc.rs \ 40 --replace-fail '/bin/echo' 'echo' 41 ''; 42 43 cargoHash = "sha256-4M5uWgksYsV8PGe0zn9ADv06q3Ga/GVoQ8HjS7GCnwo="; 44 45 nativeBuildInputs = [ 46 pkg-config 47 installShellFiles 48 scdoc 49 ]; 50 51 buildInputs = [ 52 bzip2 53 openssl 54 shared-mime-info 55 sqlite 56 xz 57 zstd 58 ]; 59 60 postInstall = 61 let 62 emulator = stdenv.hostPlatform.emulator buildPackages; 63 in 64 '' 65 mkdir -p $out/etc 66 67 # install config files 68 install -Dm 644 -t "$out/etc" contrib/confs/rebuilderd-sync.conf 69 install -Dm 640 -t "$out/etc" contrib/confs/rebuilderd-worker.conf contrib/confs/rebuilderd.conf 70 71 installShellCompletion --cmd rebuildctl \ 72 --bash <(${emulator} $out/bin/rebuildctl completions bash) \ 73 --fish <(${emulator} $out/bin/rebuildctl completions fish) \ 74 --zsh <(${emulator} $out/bin/rebuildctl completions zsh) 75 76 for f in contrib/docs/*.scd; do 77 local page="contrib/docs/$(basename "$f" .scd)" 78 scdoc < "$f" > "$page" 79 installManPage "$page" 80 done 81 ''; 82 83 checkFlags = [ 84 # Failing tests 85 "--skip=decompress::tests::decompress_bzip2_compression" 86 "--skip=decompress::tests::decompress_gzip_compression" 87 "--skip=decompress::tests::decompress_xz_compression" 88 "--skip=decompress::tests::decompress_zstd_compression" 89 "--skip=decompress::tests::detect_bzip2_compression" 90 "--skip=decompress::tests::detect_gzip_compression" 91 "--skip=decompress::tests::detect_xz_compression" 92 "--skip=decompress::tests::detect_zstd_compression" 93 "--skip=proc::tests::hello_world" 94 "--skip=proc::tests::size_limit_kill" 95 "--skip=proc::tests::size_limit_no_kill" 96 "--skip=proc::tests::size_limit_no_kill_but_timeout" 97 "--skip=proc::tests::timeout" 98 ]; 99 100 nativeInstallCheckInputs = [ 101 versionCheckHook 102 ]; 103 doInstallCheck = true; 104 105 passthru.tests = { 106 rebuilderd = nixosTests.rebuilderd; 107 }; 108 109 passthru.updateScript = nix-update-script { }; 110 111 meta = { 112 description = "Independent verification of binary packages - reproducible builds"; 113 homepage = "https://github.com/kpcyrd/rebuilderd"; 114 license = lib.licenses.gpl3Plus; 115 maintainers = [ ]; 116 mainProgram = "rebuilderd"; 117 }; 118})