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