1{ lib
2, buildPythonPackage
3, dissect-cstruct
4, dissect-util
5, fetchFromGitHub
6, lz4
7, python-lzo
8, pythonOlder
9, setuptools
10, setuptools-scm
11, zstandard
12}:
13
14buildPythonPackage rec {
15 pname = "dissect-squashfs";
16 version = "1.2";
17 format = "pyproject";
18
19 disabled = pythonOlder "3.7";
20
21 src = fetchFromGitHub {
22 owner = "fox-it";
23 repo = "dissect.squashfs";
24 rev = "refs/tags/${version}";
25 hash = "sha256-TgrtONUis0yD3s0JxJ0mNGLjEKlDgGZ+eO6NvSBTK14=";
26 };
27
28 SETUPTOOLS_SCM_PRETEND_VERSION = version;
29
30 nativeBuildInputs = [
31 setuptools
32 setuptools-scm
33 ];
34
35 propagatedBuildInputs = [
36 dissect-cstruct
37 dissect-util
38 ];
39
40 passthru.optional-dependencies = {
41 full = [
42 lz4
43 python-lzo
44 zstandard
45 ];
46 };
47
48 pythonImportsCheck = [
49 "dissect.squashfs"
50 ];
51
52 meta = with lib; {
53 description = "Dissect module implementing a parser for the SquashFS file system";
54 homepage = "https://github.com/fox-it/dissect.squashfs";
55 changelog = "https://github.com/fox-it/dissect.squashfs/releases/tag/${version}";
56 license = licenses.agpl3Only;
57 maintainers = with maintainers; [ fab ];
58 };
59}