1{
2 lib,
3 stdenv,
4 autoPatchelfHook,
5 buildPythonPackage,
6 colorama,
7 distro,
8 fetchFromGitHub,
9 packaging,
10 psutil,
11 python-dateutil,
12 pythonOlder,
13 pyyaml,
14 requests-cache,
15 requests-toolbelt,
16 requests,
17 setuptools,
18 stevedore,
19 tqdm,
20}:
21
22buildPythonPackage rec {
23 pname = "e3-core";
24 version = "22.6.0";
25 pyproject = true;
26
27 disabled = pythonOlder "3.6";
28
29 src = fetchFromGitHub {
30 owner = "AdaCore";
31 repo = "e3-core";
32 tag = "v${version}";
33 hash = "sha256-6rClGDo8KhBbOg/Rw0nVISVtOAACf5cwSafNInlBGCw=";
34 };
35
36 build-system = [ setuptools ];
37
38 nativeBuildInputs = [ autoPatchelfHook ];
39
40 dependencies =
41 [
42 colorama
43 packaging
44 python-dateutil
45 pyyaml
46 requests
47 requests-cache
48 requests-toolbelt
49 stevedore
50 tqdm
51 ]
52 ++ lib.optional stdenv.hostPlatform.isLinux [
53 # See https://github.com/AdaCore/e3-core/blob/v22.6.0/pyproject.toml#L37-L42
54 # These are required only on Linux. Darwin has its own set of requirements
55 psutil
56 distro
57 ];
58
59 pythonImportsCheck = [ "e3" ];
60
61 # e3-core is tested with tox; it's hard to test without internet.
62 doCheck = false;
63
64 meta = with lib; {
65 changelog = "https://github.com/AdaCore/e3-core/releases/tag/v${version}";
66 homepage = "https://github.com/AdaCore/e3-core/";
67 description = "Core framework for developing portable automated build systems";
68 license = licenses.gpl3Only;
69 maintainers = with maintainers; [ atalii ];
70 mainProgram = "e3";
71 # See the comment regarding distro and psutil. Other platforms are supported
72 # upstream, but not by this package.
73 platforms = platforms.linux;
74 };
75}