1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, pythonOlder
5, intervaltree
6, pyflakes
7, requests
8, lxml
9, google-i18n-address
10, pycountry
11, html5lib
12, six
13, kitchen
14, pypdf2
15, dict2xml
16, weasyprint
17, pyyaml
18, jinja2
19, configargparse
20, appdirs
21, decorator
22, pycairo
23, pytestCheckHook
24, python-fontconfig
25}:
26
27buildPythonPackage rec {
28 pname = "xml2rfc";
29 version = "3.15.1";
30
31 disabled = pythonOlder "3.6";
32
33 src = fetchFromGitHub {
34 owner = "ietf-tools";
35 repo = "xml2rfc";
36 rev = "refs/tags/v${version}";
37 sha256 = "sha256-/0Y49ZSaPM3IAFJGmWKiKD+mziA0LYQ3fvGFrkPkl9Y=";
38 };
39
40 postPatch = ''
41 substituteInPlace Makefile \
42 --replace "SHELL := /bin/bash" "SHELL := bash" \
43 --replace "test flaketest" "test"
44 substituteInPlace setup.py \
45 --replace "'tox'," ""
46 '';
47
48 propagatedBuildInputs = [
49 intervaltree
50 jinja2
51 pyflakes
52 pyyaml
53 requests
54 lxml
55 google-i18n-address
56 pycountry
57 html5lib
58 six
59 kitchen
60 pypdf2
61 dict2xml
62 weasyprint
63 configargparse
64 appdirs
65 ];
66
67 checkInputs = [
68 decorator
69 pycairo
70 pytestCheckHook
71 python-fontconfig
72 ];
73
74 # requires Noto Serif and Roboto Mono font
75 doCheck = false;
76
77 checkPhase = ''
78 make tests-no-network
79 '';
80
81 pythonImportsCheck = [ "xml2rfc" ];
82
83 meta = with lib; {
84 description = "Tool generating IETF RFCs and drafts from XML sources";
85 homepage = "https://github.com/ietf-tools/xml2rfc";
86 # Well, parts might be considered unfree, if being strict; see:
87 # http://metadata.ftp-master.debian.org/changelogs/non-free/x/xml2rfc/xml2rfc_2.9.6-1_copyright
88 license = licenses.bsd3;
89 maintainers = with maintainers; [ vcunat yrashk ];
90 };
91}