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