Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at 21.05 122 lines 2.7 kB view raw
1{ lib 2, fetchPypi 3, buildPythonPackage 4, isPy3k 5, markupsafe 6, click 7, typecode 8, gemfileparser 9, pefile 10, fingerprints 11, spdx-tools 12, fasteners 13, pycryptodome 14, urlpy 15, dparse 16, jaraco_functools 17, pkginfo 18, debian-inspector 19, extractcode 20, ftfy 21, pyahocorasick 22, colorama 23, jsonstreams 24, packageurl-python 25, pymaven-patch 26, nltk 27, pygments 28, bitarray 29, jinja2 30, javaproperties 31, boolean-py 32, license-expression 33, extractcode-7z 34, extractcode-libarchive 35, typecode-libmagic 36, pytestCheckHook 37}: 38buildPythonPackage rec { 39 pname = "scancode-toolkit"; 40 version = "21.3.31"; 41 disabled = !isPy3k; 42 43 src = fetchPypi { 44 inherit pname version; 45 sha256 = "7e0301031a302dedbb4304a91249534f3d036f84a119170b8a9fe70bd57cff95"; 46 }; 47 48 dontConfigure = true; 49 50 # https://github.com/nexB/scancode-toolkit/issues/2501 51 # * dparse2 is a "Temp fork for Python 2 support", but pdfminer requires 52 # Python 3, so it's "fine" to leave dparse2 unpackaged and use the "normal" 53 # version 54 # * ftfy was pinned for similar reasons (to support Python 2), but rather than 55 # packaging an older version, I figured it would be better to remove the 56 # erroneous (at least for our usage) version bound 57 # * bitarray's version bound appears to be unnecessary for similar reasons 58 postPatch = '' 59 substituteInPlace setup.cfg \ 60 --replace "dparse2" "dparse" \ 61 --replace "ftfy < 5.0.0" "ftfy" \ 62 --replace "bitarray >= 0.8.1, < 1.0.0" "bitarray" 63 ''; 64 65 propagatedBuildInputs = [ 66 markupsafe 67 click 68 typecode 69 gemfileparser 70 pefile 71 fingerprints 72 spdx-tools 73 fasteners 74 pycryptodome 75 urlpy 76 dparse 77 jaraco_functools 78 pkginfo 79 debian-inspector 80 extractcode 81 ftfy 82 pyahocorasick 83 colorama 84 jsonstreams 85 packageurl-python 86 pymaven-patch 87 nltk 88 pygments 89 bitarray 90 jinja2 91 javaproperties 92 boolean-py 93 license-expression 94 extractcode-7z 95 extractcode-libarchive 96 typecode-libmagic 97 ]; 98 99 checkInputs = [ 100 pytestCheckHook 101 ]; 102 103 # Importing scancode needs a writeable home, and preCheck happens in between 104 # pythonImportsCheckPhase and pytestCheckPhase. 105 postInstall = '' 106 export HOME=$(mktemp -d) 107 ''; 108 109 pythonImportsCheck = [ 110 "scancode" 111 ]; 112 113 # takes a long time and doesn't appear to do anything 114 dontStrip = true; 115 116 meta = with lib; { 117 description = "A tool to scan code for license, copyright, package and their documented dependencies and other interesting facts"; 118 homepage = "https://github.com/nexB/scancode-toolkit"; 119 license = with licenses; [ asl20 cc-by-40 ]; 120 maintainers = teams.determinatesystems.members; 121 }; 122}