at master 2.7 kB view raw
1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 6 # build-system 7 setuptools, 8 setuptools-scm, 9 10 # dependencies 11 asn1crypto, 12 bincopy, 13 bitstring, 14 click, 15 click-command-tree, 16 click-option-group, 17 colorama, 18 crcmod, 19 cryptography, 20 deepmerge, 21 fastjsonschema, 22 filelock, 23 hexdump, 24 libusbsio, 25 libuuu, 26 oscrypto, 27 packaging, 28 platformdirs, 29 prettytable, 30 pyasn1, 31 pyocd, 32 pyserial, 33 requests, 34 ruamel-yaml, 35 sly, 36 spsdk-mcu-link, 37 spsdk-pyocd, 38 typing-extensions, 39 x690, 40 41 # tests 42 cookiecutter, 43 ipykernel, 44 pytest-notebook, 45 pytestCheckHook, 46 voluptuous, 47 versionCheckHook, 48 writableTmpDirAsHomeHook, 49}: 50 51buildPythonPackage rec { 52 pname = "spsdk"; 53 version = "3.2.0"; 54 pyproject = true; 55 56 src = fetchFromGitHub { 57 owner = "nxp-mcuxpresso"; 58 repo = "spsdk"; 59 tag = "v${version}"; 60 hash = "sha256-unJpJjoS0C9TKsvk9/fQO8jiIOGbgfJopeXR5FcIq/g="; 61 }; 62 63 postPatch = '' 64 substituteInPlace pyproject.toml \ 65 --replace-fail "setuptools>=72.1,<74" "setuptools" \ 66 --replace-fail "setuptools_scm<8.2" "setuptools_scm" 67 ''; 68 69 build-system = [ 70 setuptools 71 setuptools-scm 72 ]; 73 74 pythonRelaxDeps = [ 75 "cryptography" 76 "filelock" 77 "importlib-metadata" 78 "packaging" 79 "prettytable" 80 "requests" 81 "setuptools_scm" 82 "typing-extensions" 83 ]; 84 85 pythonRemoveDeps = [ 86 # Remove unneeded unfree package. pyocd-pemicro is only used when 87 # generating a pyinstaller package, which we don't do. 88 "pyocd-pemicro" 89 ]; 90 91 dependencies = [ 92 asn1crypto 93 bincopy 94 bitstring 95 click 96 click-command-tree 97 click-option-group 98 colorama 99 cookiecutter 100 crcmod 101 cryptography 102 deepmerge 103 fastjsonschema 104 filelock 105 hexdump 106 libusbsio 107 libuuu 108 oscrypto 109 packaging 110 platformdirs 111 prettytable 112 pyasn1 113 pyocd 114 pyserial 115 requests 116 ruamel-yaml 117 sly 118 spsdk-mcu-link 119 spsdk-pyocd 120 typing-extensions 121 x690 122 ]; 123 124 pythonImportsCheck = [ "spsdk" ]; 125 126 nativeCheckInputs = [ 127 cookiecutter 128 ipykernel 129 pytest-notebook 130 pytestCheckHook 131 voluptuous 132 versionCheckHook 133 writableTmpDirAsHomeHook 134 ]; 135 versionCheckProgramArg = "--version"; 136 137 disabledTests = [ 138 # Missing rotk private key 139 "test_general_notebooks" 140 141 # Attempts to access /run 142 "test_nxpimage_famode_export_cli" 143 ]; 144 145 meta = { 146 changelog = "https://github.com/nxp-mcuxpresso/spsdk/blob/${src.tag}/docs/release_notes.rst"; 147 description = "NXP Secure Provisioning SDK"; 148 homepage = "https://github.com/nxp-mcuxpresso/spsdk"; 149 license = lib.licenses.bsd3; 150 maintainers = with lib.maintainers; [ 151 frogamic 152 sbruder 153 ]; 154 mainProgram = "spsdk"; 155 }; 156}