1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 pythonOlder,
6 defusedxml,
7 lxml,
8 relatorio,
9 genshi,
10 python-dateutil,
11 polib,
12 python-sql,
13 werkzeug,
14 wrapt,
15 passlib,
16 pydot,
17 levenshtein,
18 html2text,
19 weasyprint,
20 gevent,
21 pillow,
22 withPostgresql ? true,
23 psycopg2,
24 unittestCheckHook,
25}:
26
27buildPythonPackage rec {
28 pname = "trytond";
29 version = "7.2.1";
30 format = "setuptools";
31
32 disabled = pythonOlder "3.7";
33
34 src = fetchPypi {
35 inherit pname version;
36 hash = "sha256-gIWWzm7emSwgKoO5geNIXUqKNsDiq6fle5OHb+KvhLE=";
37 };
38
39 propagatedBuildInputs =
40 [
41 defusedxml
42 lxml
43 relatorio
44 genshi
45 python-dateutil
46 polib
47 python-sql
48 werkzeug
49 wrapt
50 passlib
51
52 # extra dependencies
53 pydot
54 levenshtein
55 html2text
56 weasyprint
57 gevent
58 pillow
59 ]
60 ++ relatorio.optional-dependencies.fodt
61 ++ passlib.optional-dependencies.bcrypt
62 ++ passlib.optional-dependencies.argon2
63 ++ lib.optional withPostgresql psycopg2;
64
65 nativeCheckInputs = [ unittestCheckHook ];
66
67 preCheck = ''
68 export HOME=$(mktemp -d)
69 export TRYTOND_DATABASE_URI="sqlite://"
70 export DB_NAME=":memory:";
71 '';
72
73 unittestFlagsArray = [
74 "-s"
75 "trytond.tests"
76 ];
77
78 meta = with lib; {
79 description = "The server of the Tryton application platform";
80 longDescription = ''
81 The server for Tryton, a three-tier high-level general purpose
82 application platform under the license GPL-3 written in Python and using
83 PostgreSQL as database engine.
84
85 It is the core base of a complete business solution providing
86 modularity, scalability and security.
87 '';
88 homepage = "http://www.tryton.org/";
89 changelog = "https://foss.heptapod.net/tryton/tryton/-/blob/trytond-${version}/trytond/CHANGELOG?ref_type=tags";
90 license = licenses.gpl3Plus;
91 maintainers = with maintainers; [
92 udono
93 johbo
94 ];
95 };
96}