nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 fetchFromGitHub,
4 rustPlatform,
5 openssl,
6 pkg-config,
7 testers,
8 fetchzip,
9 ripunzip,
10}:
11
12rustPlatform.buildRustPackage rec {
13 pname = "ripunzip";
14 version = "2.0.3";
15
16 src = fetchFromGitHub {
17 owner = "google";
18 repo = "ripunzip";
19 rev = "v${version}";
20 hash = "sha256-giNaTALPZYOfQ+kPyQufbRTdTwwKLK7iDvg50YNfzDg=";
21 };
22
23 cargoHash = "sha256-uz07yZBkmBTEGB64rhBYQ2iL0KbrY4UAM96utv8HCSE=";
24
25 buildInputs = [ openssl ];
26 nativeBuildInputs = [ pkg-config ];
27
28 checkFlags = [
29 # Skip tests involving network
30 "--skip=unzip::http_range_reader::tests::test_with_accept_range"
31 "--skip=unzip::http_range_reader::tests::test_without_accept_range"
32 "--skip=unzip::seekable_http_reader::tests::test_big_readahead"
33 "--skip=unzip::seekable_http_reader::tests::test_random_access"
34 "--skip=unzip::seekable_http_reader::tests::test_small_readahead"
35 "--skip=unzip::seekable_http_reader::tests::test_unlimited_readahead"
36 "--skip=unzip::tests::test_extract_biggish_zip_from_ranges_server"
37 "--skip=unzip::tests::test_extract_from_server"
38 "--skip=unzip::tests::test_small_zip_from_no_content_length_server"
39 "--skip=unzip::tests::test_small_zip_from_no_range_server"
40 "--skip=unzip::tests::test_small_zip_from_ranges_server"
41 ];
42
43 setupHook = ./setup-hook.sh;
44
45 passthru.tests = {
46 fetchzipWithRipunzip =
47 testers.invalidateFetcherByDrvHash (fetchzip.override { unzip = ripunzip; })
48 {
49 url = "https://github.com/google/ripunzip/archive/cb9caa3ba4b0e27a85e165be64c40f1f6dfcc085.zip";
50 hash = "sha256-BoErC5VL3Vpvkx6xJq6J+eUJrBnjVEdTuSo7zh98Jy4=";
51 };
52 version = testers.testVersion {
53 package = ripunzip;
54 };
55 };
56
57 meta = with lib; {
58 description = "Tool to unzip files in parallel";
59 mainProgram = "ripunzip";
60 homepage = "https://github.com/google/ripunzip";
61 license = with lib.licenses; [
62 mit
63 asl20
64 ];
65 maintainers = [ maintainers.lesuisse ];
66 };
67}