nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 arc4,
5 asn1crypto,
6 asn1tools,
7 asyauth,
8 asysocks,
9 buildPythonPackage,
10 cargo,
11 colorama,
12 fetchFromGitHub,
13 iconv,
14 pillow,
15 pyperclip,
16 rustPlatform,
17 rustc,
18 setuptools,
19 setuptools-rust,
20 tqdm,
21 unicrypto,
22}:
23
24buildPythonPackage rec {
25 pname = "aardwolf";
26 version = "0.2.13";
27 pyproject = true;
28
29 src = fetchFromGitHub {
30 owner = "skelsec";
31 repo = "aardwolf";
32 tag = version;
33 hash = "sha256-8QXPvfVeT3qadxTvt/LQX3XM5tGj6SpfOhP/9xcZHW4=";
34 };
35
36 patches = [ ./update-pyo3.patch ];
37
38 cargoDeps = rustPlatform.fetchCargoVendor {
39 inherit
40 pname
41 version
42 src
43 patches
44 ;
45 sourceRoot = "${src.name}/aardwolf/utils/rlers";
46 hash = "sha256-n28jzS2+zbXsdR7rT0PBvcqNacuFMJKUug0mBYc4eFE=";
47 patchFlags = [ "-p4" ]; # strip i/aardwolf/utils/rlers/ prefix
48 };
49
50 cargoRoot = "aardwolf/utils/rlers";
51
52 build-system = [
53 setuptools
54 setuptools-rust
55 ];
56
57 nativeBuildInputs = [
58 rustPlatform.cargoSetupHook
59 cargo
60 rustc
61 ];
62
63 dependencies = [
64 arc4
65 asn1crypto
66 asn1tools
67 asyauth
68 asysocks
69 colorama
70 pillow
71 pyperclip
72 tqdm
73 unicrypto
74 ]
75 ++ lib.optionals (stdenv.hostPlatform.isDarwin) [ iconv ];
76
77 # Module doesn't have tests
78 doCheck = false;
79
80 pythonImportsCheck = [ "aardwolf" ];
81
82 meta = {
83 description = "Asynchronous RDP protocol implementation";
84 mainProgram = "ardpscan";
85 homepage = "https://github.com/skelsec/aardwolf";
86 changelog = "https://github.com/skelsec/aardwolf/releases/tag/${version}";
87 license = lib.licenses.mit;
88 maintainers = with lib.maintainers; [ fab ];
89 };
90}