1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
{ 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.0.8";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-W6Ev1MV8cZU4bauAfmuZsBzMJKz7xpw8siO3Afn5mc8=";
};
dontConfigure = true;
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
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 = with maintainers; [ ];
};
}
|