nixpkgs/pkgs/tools/filesystems/squashfs/default.nix
Ruud van Asseldonk ed81545df5 squashfsTools: 4.5 -> 4.5.1
The patch that was previously fetched from GitHub is now part of the
4.5.1 release, and is no longer needed. Furthermore, 4.5.1 introduces
some new scripts to build manpages, and some new build inputs are
required to make that work.

This also rebases the Darwin patch. I don't have a Mac so I can't test
this personally. There was one conflict:

diff --cc squashfs-tools/read_xattrs.c
index 2067f80,b28c3a0..0000000
--- a/squashfs-tools/read_xattrs.c
+++ b/squashfs-tools/read_xattrs.c
@@@ -36,9 -38,7 +38,7 @@@
  #include "xattr.h"
  #include "error.h"

- #include <stdlib.h>
-
 -extern int read_fs_bytes(int, long long, int, void *);
 +extern int read_fs_bytes(int, long long, long long, void *);
  extern int read_block(int, long long, long long *, int, void *);

  static struct hash_entry {

Resolved by updating the signature from int to long long.
2022-03-20 13:02:57 +01:00

62 lines
1.2 KiB
Nix

{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, help2man
, lz4
, lzo
, nixosTests
, which
, xz
, zlib
, zstd
}:
stdenv.mkDerivation rec {
pname = "squashfs";
version = "4.5.1";
src = fetchFromGitHub {
owner = "plougher";
repo = "squashfs-tools";
rev = version;
sha256 = "sha256-Y3ZPjeE9HN1F+NtGe6EchYziWrTPVQ4SuKaCvNbXMKI=";
};
patches = [
# This patch adds an option to pad filesystems (increasing size) in
# exchange for better chunking / binary diff calculation.
./4k-align.patch
] ++ lib.optional stdenv.isDarwin ./darwin.patch;
buildInputs = [ zlib xz zstd lz4 lzo which help2man ];
preBuild = ''
cd squashfs-tools
'' ;
installFlags = [
"INSTALL_DIR=${placeholder "out"}/bin"
"INSTALL_MANPAGES_DIR=${placeholder "out"}/share/man/man1"
];
makeFlags = [
"XZ_SUPPORT=1"
"ZSTD_SUPPORT=1"
"LZ4_SUPPORT=1"
"LZO_SUPPORT=1"
];
passthru.tests = {
nixos-iso-boots-and-verifies = nixosTests.boot.biosCdrom;
};
meta = with lib; {
homepage = "https://github.com/plougher/squashfs-tools";
description = "Tool for creating and unpacking squashfs filesystems";
platforms = platforms.unix;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ ruuda ];
};
}