1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 installShellFiles,
6 python3,
7}:
8
9python3.pkgs.buildPythonApplication rec {
10 pname = "ssh-mitm";
11 version = "5.0.1";
12 pyproject = true;
13
14 src = fetchFromGitHub {
15 owner = "ssh-mitm";
16 repo = "ssh-mitm";
17 tag = version;
18 hash = "sha256-FmxVhYkPRZwS+zFwuId9nRGN832LRkgCNgDYb8Pg01U=";
19 };
20
21 pythonRelaxDeps = [ "paramiko" ];
22
23 build-system = with python3.pkgs; [
24 hatchling
25 hatch-requirements-txt
26 ];
27
28 nativeBuildInputs = [ installShellFiles ];
29
30 dependencies =
31 with python3.pkgs;
32 [
33 appimage
34 argcomplete
35 colored
36 packaging
37 paramiko
38 pytz
39 pyyaml
40 python-json-logger
41 rich
42 tkinter
43 setuptools
44 sshpubkeys
45 wrapt
46 ]
47 ++ lib.optionals stdenv.hostPlatform.isDarwin [ setuptools ];
48 # fix for darwin users
49
50 # Module has no tests
51 doCheck = false;
52
53 # Install man page
54 postInstall = ''
55 installManPage man1/*
56 '';
57
58 pythonImportsCheck = [ "sshmitm" ];
59
60 meta = {
61 description = "Tool for SSH security audits";
62 homepage = "https://github.com/ssh-mitm/ssh-mitm";
63 changelog = "https://github.com/ssh-mitm/ssh-mitm/blob/${version}/CHANGELOG.md";
64 license = lib.licenses.gpl3Only;
65 maintainers = with lib.maintainers; [ fab ];
66 };
67}