{ lib, attrs, beautifulsoup4, bitarray, boolean-py, buildPythonPackage, chardet, click, colorama, commoncode, container-inspector, debian-inspector, dparse2, extractcode, extractcode-7z, extractcode-libarchive, fasteners, fetchPypi, fingerprints, ftfy, gemfileparser2, html5lib, importlib-metadata, intbitset, jaraco-functools, javaproperties, jinja2, jsonstreams, license-expression, lxml, markupsafe, packageurl-python, packaging, parameter-expansion-patched, pefile, pip-requirements-parser, pkginfo2, pluggy, plugincode, publicsuffix2, pyahocorasick, pycryptodome, pygmars, pygments, pymaven-patch, pytestCheckHook, pythonOlder, requests, saneyaml, setuptools, spdx-tools, text-unidecode, toml, typecode, typecode-libmagic, urlpy, xmltodict, zipp, }: buildPythonPackage rec { pname = "scancode-toolkit"; version = "32.2.0"; pyproject = true; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; hash = "sha256-P5Lmosa8PrqDYEbdoDLnby0ET4KsfbLWzXHmWHhy8ss="; }; dontConfigure = true; build-system = [ setuptools ]; dependencies = [ attrs beautifulsoup4 bitarray boolean-py chardet click colorama commoncode container-inspector debian-inspector dparse2 extractcode extractcode-7z extractcode-libarchive fasteners fingerprints ftfy gemfileparser2 html5lib importlib-metadata intbitset jaraco-functools javaproperties jinja2 jsonstreams license-expression lxml markupsafe packageurl-python packaging parameter-expansion-patched pefile pip-requirements-parser pkginfo2 pluggy plugincode publicsuffix2 pyahocorasick pycryptodome pygmars pygments pymaven-patch requests saneyaml spdx-tools text-unidecode toml typecode typecode-libmagic urlpy xmltodict ] ++ lib.optionals (pythonOlder "3.9") [ zipp ]; nativeCheckInputs = [ pytestCheckHook ]; # Importing scancode needs a writeable home, and preCheck happens in between # pythonImportsCheckPhase and pytestCheckPhase. postInstall = '' export HOME=$(mktemp -d) ''; pythonImportsCheck = [ "scancode" ]; disabledTestPaths = [ # Tests are outdated "src/formattedcode/output_spdx.py" "src/scancode/cli.py" ]; # Takes a long time and doesn't appear to do anything dontStrip = true; meta = with lib; { description = "Tool to scan code for license, copyright, package and their documented dependencies and other interesting facts"; homepage = "https://github.com/nexB/scancode-toolkit"; changelog = "https://github.com/nexB/scancode-toolkit/blob/v${version}/CHANGELOG.rst"; license = with licenses; [ asl20 cc-by-40 ]; maintainers = [ ]; }; }