biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / tools / filesystems / squashfs / default.nix
blobae658330b28011888d9792fb940b3fc2f6a8c625
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , help2man
5 , lz4
6 , lzo
7 , nixosTests
8 , which
9 , xz
10 , zlib
11 , zstd
14 stdenv.mkDerivation rec {
15   pname = "squashfs";
16   version = "4.6.1";
18   src = fetchFromGitHub {
19     owner = "plougher";
20     repo = "squashfs-tools";
21     rev = version;
22     hash = "sha256-C/awQpp1Q/0adx3YVNTq6ruEAzcjL5G7SkOCgpvAA50=";
23   };
25   patches = [
26     # This patch adds an option to pad filesystems (increasing size) in
27     # exchange for better chunking / binary diff calculation.
28     ./4k-align.patch
29   ];
31   strictDeps = true;
32   nativeBuildInputs = [ which ]
33     # when cross-compiling help2man cannot run the cross-compiled binary
34     ++ lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ help2man ];
35   buildInputs = [ zlib xz zstd lz4 lzo ];
37   preBuild = ''
38     cd squashfs-tools
39   '' ;
41   installFlags = [
42     "INSTALL_DIR=${placeholder "out"}/bin"
43     "INSTALL_MANPAGES_DIR=${placeholder "out"}/share/man/man1"
44   ];
46   makeFlags = [
47     "XZ_SUPPORT=1"
48     "ZSTD_SUPPORT=1"
49     "LZ4_SUPPORT=1"
50     "LZMA_XZ_SUPPORT=1"
51     "LZO_SUPPORT=1"
52   ];
54   passthru.tests = {
55     nixos-iso-boots-and-verifies = nixosTests.boot.biosCdrom;
56   };
58   meta = with lib; {
59     homepage = "https://github.com/plougher/squashfs-tools";
60     description = "Tool for creating and unpacking squashfs filesystems";
61     platforms = platforms.unix;
62     license = licenses.gpl2Plus;
63     maintainers = with maintainers; [ ruuda ];
64     mainProgram = "mksquashfs";
65   };