1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, fetchpatch
5, flask
6, karton-core
7, mistune
8, networkx
9, prometheus-client
10, pythonOlder
11, pythonRelaxDepsHook
12}:
13
14buildPythonPackage rec {
15 pname = "karton-dashboard";
16 version = "1.4.0";
17 format = "setuptools";
18
19 disabled = pythonOlder "3.7";
20
21 src = fetchFromGitHub {
22 owner = "CERT-Polska";
23 repo = pname;
24 rev = "refs/tags/v${version}";
25 hash = "sha256-XMyQ0mRF4y61hqlqdxC+He+697P1URfOXQUMnV0pT7o=";
26 };
27
28 patches = [
29 # Allow later mistune, https://github.com/CERT-Polska/karton-dashboard/pull/68
30 (fetchpatch {
31 name = "update-mistune.patch";
32 url = "https://github.com/CERT-Polska/karton-dashboard/commit/d0a2a1ffd21e9066acca77434acaff7b20e460d0.patch";
33 hash = "sha256-LOqeLWoCXmVTthruBiQUYR03yPOPHhgYF/fJMhhT6Wo=";
34 })
35 ];
36
37 pythonRelaxDeps = [
38 "Flask"
39 "mistune"
40 "networkx"
41 "prometheus-client"
42 ];
43
44 nativeBuildInputs = [
45 pythonRelaxDepsHook
46 ];
47
48 propagatedBuildInputs = [
49 flask
50 karton-core
51 mistune
52 networkx
53 prometheus-client
54 ];
55
56 # Project has no tests. pythonImportsCheck requires MinIO configuration
57 doCheck = false;
58
59 meta = with lib; {
60 description = "Web application that allows for Karton task and queue introspection";
61 homepage = "https://github.com/CERT-Polska/karton-dashboard";
62 changelog = "https://github.com/CERT-Polska/karton-dashboard/releases/tag/v${version}";
63 license = with licenses; [ bsd3 ];
64 maintainers = with maintainers; [ fab ];
65 };
66}