diff --git a/pkgs/development/python-modules/rarfile/default.nix b/pkgs/development/python-modules/rarfile/default.nix index 183e5a2f1d9..c2c8c926432 100644 --- a/pkgs/development/python-modules/rarfile/default.nix +++ b/pkgs/development/python-modules/rarfile/default.nix @@ -1,4 +1,10 @@ -{ stdenv, buildPythonPackage, fetchFromGitHub, pytest, nose, unrar, glibcLocales }: +{ stdenv, buildPythonPackage, fetchFromGitHub, pytest, nose, libarchive, glibcLocales +# unrar is non-free software +, useUnrar ? false, unrar +}: + +assert useUnrar -> unrar != null; +assert !useUnrar -> libarchive != null; buildPythonPackage rec { pname = "rarfile"; @@ -15,8 +21,16 @@ buildPythonPackage rec { prePatch = '' substituteInPlace rarfile.py \ - --replace 'UNRAR_TOOL = "unrar"' "UNRAR_TOOL = \"${unrar}/bin/unrar\"" - ''; + '' + (if useUnrar then + ''--replace 'UNRAR_TOOL = "unrar"' "UNRAR_TOOL = \"${unrar}/bin/unrar\"" + '' + else + ''--replace 'ALT_TOOL = "bsdtar"' "ALT_TOOL = \"${libarchive}/bin/bsdtar\"" + '') + + '' + ''; + # the tests only work with the standard unrar package + doCheck = useUnrar; LC_ALL = "en_US.UTF-8"; checkPhase = '' py.test test -k "not test_printdir" diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 1f10fac5041..dd4bf42fd02 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2605,7 +2605,7 @@ in { }; - rarfile = callPackage ../development/python-modules/rarfile {}; + rarfile = callPackage ../development/python-modules/rarfile { inherit (pkgs) libarchive; }; proboscis = buildPythonPackage rec { name = "proboscis-1.2.6.0";