1{ lib
2, stdenv
3, fetchFromGitHub
4, python3
5, cacert
6}:
7
8python3.pkgs.buildPythonApplication rec {
9 pname = "gallia";
10 version = "1.1.4";
11 format = "pyproject";
12
13 src = fetchFromGitHub {
14 owner = "Fraunhofer-AISEC";
15 repo = pname;
16 rev = "refs/tags/v${version}";
17 hash = "sha256-McHzHK404kDB992T2f84dZHDxujpPIz4qglYMmv3kTw=";
18 };
19
20 pythonRelaxDeps = [
21 "aiofiles"
22 "argcomplete"
23 "msgspec"
24 ];
25
26 nativeBuildInputs = with python3.pkgs; [
27 poetry-core
28 pythonRelaxDepsHook
29 ];
30
31 propagatedBuildInputs = with python3.pkgs; [
32 aiofiles
33 aiohttp
34 aiosqlite
35 argcomplete
36 can
37 construct
38 msgspec
39 pydantic
40 pygit2
41 tabulate
42 tomli
43 zstandard
44 ];
45
46 SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
47
48 nativeCheckInputs = with python3.pkgs; [
49 pytestCheckHook
50 pytest-asyncio
51 ];
52
53 pythonImportsCheck = [
54 "gallia"
55 ];
56
57 preCheck = ''
58 export PATH=$out/bin:$PATH
59 '';
60
61 meta = with lib; {
62 description = "Extendable Pentesting Framework for the Automotive Domain";
63 homepage = "https://github.com/Fraunhofer-AISEC/gallia";
64 changelog = "https://github.com/Fraunhofer-AISEC/gallia/releases/tag/v${version}";
65 license = with licenses; [ asl20 ];
66 maintainers = with maintainers; [ fab rumpelsepp ];
67 platforms = platforms.linux;
68 };
69}