1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, pycryptodome
5, pythonOlder
6, enlighten
7, zstandard
8, withGUI ? true
9, kivy
10}:
11
12buildPythonPackage rec {
13 pname = "nsz";
14 version = "4.5.0";
15 format = "setuptools";
16
17 disabled = pythonOlder "3.7";
18
19 src = fetchFromGitHub {
20 owner = "nicoboss";
21 repo = pname;
22 rev = "refs/tags/${version}";
23 hash = "sha256-/46qOQEuzSBmnFG0XW4z71HAHpuyqhia29KQkUlDsgg=";
24 };
25
26 propagatedBuildInputs = [
27 pycryptodome
28 enlighten
29 zstandard
30 ] ++ lib.optional withGUI kivy;
31
32 # do not check, as nsz requires producation keys
33 # dumped from a Nintendo Switch.
34 doCheck = false;
35
36 meta = with lib; {
37 homepage = "https://github.com/nicoboss/nsz";
38 description = "Homebrew compatible NSP/XCI compressor/decompressor";
39 changelog = "https://github.com/nicoboss/nsz/releases/tag/${version}";
40 license = licenses.mit;
41 maintainers = with maintainers; [ eyjhb ];
42 };
43}