123 lines
2.6 KiB
Nix
123 lines
2.6 KiB
Nix
|
{ lib
|
||
|
, fetchPypi
|
||
|
, buildPythonPackage
|
||
|
, isPy3k
|
||
|
, markupsafe
|
||
|
, click
|
||
|
, typecode
|
||
|
, gemfileparser
|
||
|
, pefile
|
||
|
, fingerprints
|
||
|
, spdx-tools
|
||
|
, fasteners
|
||
|
, pycryptodome
|
||
|
, urlpy
|
||
|
, dparse
|
||
|
, jaraco_functools
|
||
|
, pkginfo
|
||
|
, debian-inspector
|
||
|
, extractcode
|
||
|
, ftfy
|
||
|
, pyahocorasick
|
||
|
, colorama
|
||
|
, jsonstreams
|
||
|
, packageurl-python
|
||
|
, pymaven-patch
|
||
|
, nltk
|
||
|
, pygments
|
||
|
, bitarray
|
||
|
, jinja2
|
||
|
, javaproperties
|
||
|
, boolean-py
|
||
|
, license-expression
|
||
|
, extractcode-7z
|
||
|
, extractcode-libarchive
|
||
|
, typecode-libmagic
|
||
|
, pytestCheckHook
|
||
|
}:
|
||
|
buildPythonPackage rec {
|
||
|
pname = "scancode-toolkit";
|
||
|
version = "21.3.31";
|
||
|
disabled = !isPy3k;
|
||
|
|
||
|
src = fetchPypi {
|
||
|
inherit pname version;
|
||
|
sha256 = "7e0301031a302dedbb4304a91249534f3d036f84a119170b8a9fe70bd57cff95";
|
||
|
};
|
||
|
|
||
|
dontConfigure = true;
|
||
|
|
||
|
# https://github.com/nexB/scancode-toolkit/issues/2501
|
||
|
# * dparse2 is a "Temp fork for Python 2 support", but pdfminer requires
|
||
|
# Python 3, so it's "fine" to leave dparse2 unpackaged and use the "normal"
|
||
|
# version
|
||
|
# * ftfy was pinned for similar reasons (to support Python 2), but rather than
|
||
|
# packaging an older version, I figured it would be better to remove the
|
||
|
# erroneous (at least for our usage) version bound
|
||
|
# * bitarray's version bound appears to be unnecessary for similar reasons
|
||
|
postPatch = ''
|
||
|
substituteInPlace setup.cfg \
|
||
|
--replace "dparse2" "dparse" \
|
||
|
--replace "ftfy < 5.0.0" "ftfy" \
|
||
|
--replace "bitarray >= 0.8.1, < 1.0.0" "bitarray"
|
||
|
'';
|
||
|
|
||
|
propagatedBuildInputs = [
|
||
|
markupsafe
|
||
|
click
|
||
|
typecode
|
||
|
gemfileparser
|
||
|
pefile
|
||
|
fingerprints
|
||
|
spdx-tools
|
||
|
fasteners
|
||
|
pycryptodome
|
||
|
urlpy
|
||
|
dparse
|
||
|
jaraco_functools
|
||
|
pkginfo
|
||
|
debian-inspector
|
||
|
extractcode
|
||
|
ftfy
|
||
|
pyahocorasick
|
||
|
colorama
|
||
|
jsonstreams
|
||
|
packageurl-python
|
||
|
pymaven-patch
|
||
|
nltk
|
||
|
pygments
|
||
|
bitarray
|
||
|
jinja2
|
||
|
javaproperties
|
||
|
boolean-py
|
||
|
license-expression
|
||
|
extractcode-7z
|
||
|
extractcode-libarchive
|
||
|
typecode-libmagic
|
||
|
];
|
||
|
|
||
|
checkInputs = [
|
||
|
pytestCheckHook
|
||
|
];
|
||
|
|
||
|
# Importing scancode needs a writeable home, and preCheck happens in between
|
||
|
# pythonImportsCheckPhase and pytestCheckPhase.
|
||
|
postInstall = ''
|
||
|
export HOME=$(mktemp -d)
|
||
|
'';
|
||
|
|
||
|
pythonImportsCheck = [
|
||
|
"scancode"
|
||
|
];
|
||
|
|
||
|
# takes a long time and doesn't appear to do anything
|
||
|
dontStrip = true;
|
||
|
|
||
|
meta = with lib; {
|
||
|
description = "A tool to scan code for license, copyright, package and their documented dependencies and other interesting facts";
|
||
|
homepage = "https://github.com/nexB/scancode-toolkit";
|
||
|
license = with licenses; [ asl20 cc-by-40 ];
|
||
|
maintainers = teams.determinatesystems.members;
|
||
|
};
|
||
|
}
|