anki-bin: 24.06.3 -> 24.11 (#360722)
[NixPkgs.git] / pkgs / development / python-modules / rarfile / default.nix
blobec0ebf0302caf7365d4ab17c607e0945dd562121
2   lib,
3   buildPythonPackage,
4   fetchFromGitHub,
5   pytestCheckHook,
6   libarchive,
7   pythonOlder,
8   setuptools,
9   # unrar is non-free software
10   useUnrar ? false,
11   unrar,
14 assert useUnrar -> unrar != null;
15 assert !useUnrar -> libarchive != null;
17 buildPythonPackage rec {
18   pname = "rarfile";
19   version = "4.2";
20   pyproject = true;
22   disabled = pythonOlder "3.6";
24   src = fetchFromGitHub {
25     owner = "markokr";
26     repo = "rarfile";
27     rev = "refs/tags/v${version}";
28     hash = "sha256-ZiwD2LG25fMd4Z+QWsh/x3ceG5QRBH4s/TZDwMnfpNI=";
29   };
31   prePatch =
32     ''
33       substituteInPlace rarfile.py \
34     ''
35     + (
36       if useUnrar then
37         ''
38           --replace 'UNRAR_TOOL = "unrar"' "UNRAR_TOOL = \"${unrar}/bin/unrar\""
39         ''
40       else
41         ''
42           --replace 'ALT_TOOL = "bsdtar"' "ALT_TOOL = \"${libarchive}/bin/bsdtar\""
43         ''
44     )
45     + "";
47   build-system = [ setuptools ];
49   nativeCheckInputs = [ pytestCheckHook ];
51   # The tests only work with the standard unrar package
52   doCheck = useUnrar;
54   pythonImportsCheck = [ "rarfile" ];
56   meta = with lib; {
57     description = "RAR archive reader for Python";
58     homepage = "https://github.com/markokr/rarfile";
59     changelog = "https://github.com/markokr/rarfile/releases/tag/v${version}";
60     license = licenses.isc;
61     maintainers = [ ];
62   };